forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Полезные функции (http://forum.boolean.name/forumdisplay.php?f=17)
-   -   очень маленькие хинты (http://forum.boolean.name/showthread.php?t=3670)

moka 08.07.2008 16:14

Ответ: очень маленькие хинты
 
Цитата:

1. EntityCollided и другие функции коллизий в Блице не будут работать без UpdateWorld в главном цикле. Справка не врет.
Анимация тоже не будет работать без обновления.

Harter 27.12.2008 15:23

Ответ: очень маленькие хинты
 
Цитата:

Сообщение от dimond (Сообщение 73962)
меняет цвет при условии
Код:

Color (health<25)*255,(health>=25)*255,0:text 0,0,health
у меня идея, упрощение кода донельзя
если я изобрел велосипед, скажите.

Есть вешь получше(т.к. только что изобрел - без упрощения кода, но думаю оптимизировать не составит труда):

Код:

greenn=(510-life*5)/2
redd=(510-greenn)/2
Color greenn, redd, 0


Shirase 31.12.2008 07:37

Ответ: очень маленькие хинты
 
Ну наверно все это знают:
Cвич булевой переменной:
flag=flag xor 3
или
flag=1-flag

Функция сложения по модулю 2 (xor)
Почему xor называется "сложение по модулю 2"? Потому что так оно и есть: в двоичной системе 0+0=0, 0+1=1+0=1, 1+1=10, а по модулю 2 (остаток от деления на 2) последняя сумма как раз и даёт 0.
Во-первых, при инвертировании одного из аргументов эта функция также инвертируется. Во-вторых, эта функция показывает, когда аргументы не равны (а при инвертировании одного из аргументов - когда равны). В-третьих, она позволяет проводить управляемое инвертирование: при нулевом аргументе другой аргумент не меняется, при единичном же значении второй аргумент инвертируется. Наконец, эта функция инволютивна (её повторное применение возвращает к исходному аргументу): если (x3=x1 xor x2), то (x3 xor x1=x2) и (x3 xor x2=x1).
Почему Xor нет в BlitzMAX???:''((

jimon 31.12.2008 14:57

Ответ: очень маленькие хинты
 
Shirase
пиши flag = not flag и будет тебе счастье

SBJoker 31.12.2008 15:03

Ответ: очень маленькие хинты
 
Цитата:

Сообщение от Shirase (Сообщение 93268)
Почему Xor нет в BlitzMAX???:''((

наверно потому что там его заменяет оператор ~

dimanche13 31.12.2008 15:03

Ответ: очень маленькие хинты
 
Bitwise exclusive or Expression ~ Expression

Arton 21.07.2009 18:35

Ответ: очень маленькие хинты
 
Поставил в своём коде Flip (0), до этого fps был ~72 хотя комп неслабый, после fps подскочил аш до ~2000, впрочем у меня все равно только плоскость и один кубик рендерился) но всё равно я таких цифр еще не видел o_O

NitE 21.07.2009 18:37

Ответ: очень маленькие хинты
 
некрофилическая фантастика !

ABTOMAT 21.07.2009 19:53

Ответ: очень маленькие хинты
 
Arton, аргумент flip ответственен за вертикальную синхронизацию (= ограничение ФПС до "родного" для монитора уровня), поэтому, если с flip(0) (синхра отключена) может быть какой угодно FPS, то с flip(1) (включена) может быть либо равным частоте развёртки экрана (Правый клик на раб. столе -> свойства -> параметры -> дополнительно -> монитор -> частота обновления экрана) либо меньше.
http://ru.wikipedia.org/wiki/Вертикальная_синхронизация
В блице по умолчанию включена, чтобы не было лишних вопросов (типа у меня 100 ФПС а у друга 500 ФПС и у него всё быстрее движется и когда мы в мою игру по сетке играем, он меня обгоняет :-D), т.к. на ненастроенных мониторах обычно 60 Гц, и ламота жалуется, что ЭЛТ-мониторы им глаза портят.

Arton 03.08.2009 18:29

Ответ: очень маленькие хинты
 
Спасибо за разъяснение, ABTOMAT, а про вертикальную синхронизацию я так знаю, просто я думал что "Flip – меняет местами передний и задний буфер" как написано было в одном учебники =)

ABTOMAT 03.08.2009 18:55

Ответ: очень маленькие хинты
 
Цитата:

"Flip – меняет местами передний и задний буфер"
И это тоже

Chrono Syndrome 12.08.2009 14:43

Ответ: очень маленькие хинты
 
Одна из наиболее оптимизированных (по меркам Blitz3D) реализаций алгоритма преобразования целоисчисленного представления ранее записанного выровненным (символами нуля) текстом десятичного числа к исходному виду:

Код:

Function Val4(DWord%) ; Для четырехзначных чисел (ReadInt).
DWord = DWord - $30303030
Return (((DWord And $FF)*10+DWord Shl 16 Shr 24)*10+DWord Shl 8 Shr 24)*10+DWord Shr 24
End Function

Function Val2(Word%) ; Для двузначных чисел (ReadShort).
Return (Word And $FF - $30) * 10 + (Word - $3000) Shr 8
End Function

Обратите внимание: из соображений производительности в представленных функциях опущены какие-либо проверки корректности передаваемых данных.

Alex_Noc 09.12.2010 23:06

Ответ: очень маленькие хинты
 
Вот такая конструкция вернет после "Not" не "0", а ваши числа:
Num=32 ;начальное значение переменной
if keyhit (but) then Num=Num-16*(Num=32)+16*(Num=16) ; переключает с 16 на 32 и обратно
значения могут быть любыми.

Это Тадеус подсказал за что ему огромное спасибо!!!

ABTOMAT 09.12.2010 23:38

Ответ: очень маленькие хинты
 
Посоны, вы чего? Можно же намного изящней!
Код:

var = 16
var = ((Int(Not(var Shr 4-1))+1)Shl 4)
Print var

Ньюфаги не могут битовый сдвиг, лол :-D.

Harter 14.05.2011 18:21

Ответ: очень маленькие хинты
 
Вложений: 1
Цитата:

Сообщение от Harter (Сообщение 92967)
Есть вешь получше(т.к. только что изобрел - без упрощения кода, но думаю оптимизировать не составит труда):

Код:

greenn=(510-life*5)/2
redd=(510-greenn)/2
Color greenn, redd, 0


100500лицоладоней

Представляю вам первый алгоритм из серии "не думай @ ищи".

уголок дорога как сделать круто бесплатно без регистрации 2D 3D ну клеточки чтоб работало
Блочная графика #1


Часовой пояс GMT +4, время: 13:31.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot