forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты на BlitzMax (http://forum.boolean.name/forumdisplay.php?f=106)
-   -   elmax - набросок фреймворка (http://forum.boolean.name/showthread.php?t=4262)

dimanche13 30.08.2007 13:02

Re: elmax - набросок фреймворка
 
я заскриншотил, да не знаю как на форуме прицепить картинку...

johnk 30.08.2007 13:07

Re: elmax - набросок фреймворка
 
Засовывай на http://imageshack.us/

dimanche13 30.08.2007 13:13

Re: elmax - набросок фреймворка
 
так чтоли...

elmortem 30.08.2007 13:56

Re: elmax - набросок фреймворка
 
Да, это баг. Возникает при выделении последнего пункта в списке. Пофиксил.

dimanche13 30.08.2007 14:17

Re: elmax - набросок фреймворка
 
не обязательно последнего. Всх пунктов, которые гносят имя Second List Item.

elmortem 31.08.2007 03:24

Re: elmax - набросок фреймворка
 
dimanche13
Пофиг, всё равно пофиксил. (&

Есть у кого-нибудь пожелания по частицам? Код вообще кто-нибудь ковырял? Структура в целом как? Хочет по коду отзыв услышать...

dimanche13 31.08.2007 13:09

Re: elmax - набросок фреймворка
 
Код:

Const PS_LIFE:Int = 2,
PS_POSITION:Int = 4,
PS_GRAVITY:Int = 8,
PS_ANGLE:Int = 16,
PS_SCALE:Int = 32,
PS_COLOR:Int = 64,
PS_EMMLIFE:Int = 126,
PS_ADDPAR:Int = 256

я так понял что ты используешь их как флаги, ну 1 и 0. тогда это должны быть степени двойки = 128. Бегло смотрел, так что могу ошибаться.
и еще
Код:

                Local children:TList = New TList
                children = node.getChildren()
                Local j:TxmlNode = Null
                For j = EachIn children

по-моему можно проще:
Код:

                children:Tlist = new( node.getChildren()
                For local j:TxmlNode  = EachIn children

ну или типа такого...

elmortem 31.08.2007 13:37

Re: elmax - набросок фреймворка
 
Действительно, должно быть 128, это я ошибся. Остальной код тож попробую...

dimanche13 31.08.2007 13:46

Re: elmax - набросок фреймворка
 
Вот поэтому я делал так enum (для С правда) от 1 до конечного, ну чтобы было типа:
Код:

Const PS_LIFE:Int = 1,
PS_POSITION:Int = 2,
PS_GRAVITY:Int = 3,
PS_ANGLE:Int = 4,
PS_SCALE:Int = 5,
PS_COLOR:Int = 6,
PS_EMMLIFE:Int = 7,
PS_ADDPAR:Int = 8

а потом:
Код:

if temp & (1 << PS_LIFE) then ...

moka 31.08.2007 13:55

Re: elmax - набросок фреймворка
 
dimanche13, а как реализуешь систему смешивания флагов? Смотри в стандартных флагах б3д, там удобно что можно смешать и те и те флаги, а у тебя как тогда?

dimanche13 31.08.2007 14:58

Re: elmax - набросок фреймворка
 
Код:


PS_LIFE:Int = 0
PS_POSITION:Int = 1
PS_GRAVITY:Int = 2
PS_ANGLE:Int = 3
PS_SCALE:Int = 4
PS_COLOR:Int = 5
PS_EMMLIFE:Int = 6
PS_ADDPAR:Int = 7

temp:Int = 0
temp = (1 Shl PS_LIFE) | (1 Shl PS_GRAVITY) ' установить 2 флага

Print "temp: " + temp

If( temp & (1 Shl PS_LIFE) )
        Print " PS_LIFE - yes!"
Else
        Print " PS_LIFE - no!"
End If
       
If (temp & (1 Shl PS_GRAVITY) )
        Print " PS_GRAVITY - yes!"
Else
        Print " PS_GRAVITY - no!"
End If

If (temp & (1 Shl PS_COLOR) )
        Print " PS_COLOR - yes!"
Else
        Print " PS_COLOR - no!"
End If

End

Moka примерно так ;)

jimon 31.08.2007 15:04

Re: elmax - набросок фреймворка
 
dimanche13
бррр
в блице флаг указыватся вот так 2 + 8 + 512 и все нормально
слишком много кода писать в твоем способе надо

dimanche13 31.08.2007 15:49

Re: elmax - набросок фреймворка
 
Цитата:

Сообщение от jimon
бррр
в блице флаг указыватся вот так 2 + 8 + 512 и все нормально
слишком много кода писать в твоем способе надо

Jimon, ну это не мой способ))) этот способ применяется в програминге микроконтроллеров, для битовых операций над специальными регистрами. На Блитце он выглядит, конечно трудновато. Но все приемущества этого способа можно увидеть лишь на С.
Код:

enum { PS_LIFE = 0, PS_POSITION, PS_GRAVITY, ... }
ну а дальше как я уже говорил
if(reg & (1 << PS_LIFE) | (1 << PS_POSITION) )

Как можно видеть надо тока добавлять новые флаги в енумс и все. не заботиться ни о каких цифрах.

Ну и наконец, не перестану повторять, что каждый сам выбирает как ему делать, даже может изобретать свои способы. А иначе програминг стал бы простым копипастом.

elmortem 31.08.2007 18:09

Re: elmax - набросок фреймворка
 
Ну, я ж не на Си сейчас прогаю.
Работает - значит всё гут. Скоро выложу апдейт с русским вводом. (:

elmortem 31.08.2007 18:52

Re: elmax - набросок фреймворка
 
Первая страница обновлена.

Last Version 0.0.4 (31.08.2007)
+ Добавлены новые GUI контролы (текстовая кнопка, строка ввода)
* Исправлены ошибки в системе частиц
* Добавлены параметры дистанции для эмиттеров


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

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