оптимизация цикла
Как избежать двух перебираний списка, если логика цикла устроена как:
Код:
Const FPS%=75 Код:
If ((so.y > GraphicsHeight() + 300) Or (so.x > GraphicsWidth() + 300) Or (so.x < 0 - 300)) Then so.live = False |
Ответ: оптимизация цикла
от двух переборов не уйдешь вроде,
объект удаляется из памяти, елси на него нет больше нигде ссылок и только после команды GCcollect() |
Ответ: оптимизация цикла
Цитата:
|
Ответ: оптимизация цикла
в принципе от двух переборов не уйти, но можно сделать так, чтоб update-перебор проходил по всем, а draw-перебор, только для тех, кто в фруструме камеры(окне вывода), тогда второй перебор будет меньше. Удаляя объект необходимо занулить и все его филды
Type _Object field img:TImage field snd:TSound method Free() img = null snd = null end method end type вызываешь free() а потом нулишь, сам объект. |
Ответ: оптимизация цикла
dimanche13, спсибо! теперь ситуация полностью прояснилась.
|
Часовой пояс GMT +4, время: 08:10. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot