-
(ех... странник зашел на огонек к знакомым, а они все такие же, радует ^^)
Код 0-го поста написан своими руками? Если да, то не верю! :)
В сторону объектов и классов даж плевать не буду, наверное еще рано...
Масив, причем именно того типа, который ANTPro в [18] указал.
* выделение масива в N записей -SetLength(Missiles, N)
* освобождение памяти масива -Finalize(Missiles)
или просто
выставить указатель на масив в nil.
* обращение к N-ому элементу масива -Missiles[N]
да... вощем вроде все ^^
(т.к. давно вернулся в обитель C++, точно не помню параметров,
а справки делфевой на работе нету :))) ) -
> освобождение памяти масива - Finalize(Missiles) или просто
> выставить указатель на масив в nil.
В Delphi освобождение памяти, выделенной под длинные строки и динамические массивы - автоматическое, при выходе из зоны видимости.
В пределах зоны видимости целесообразнее делать переопределение длины через SetLength(ar,0), если того требует функциональность -
@!!ex © (12.07.07 10:41) [22]> освобождение памяти масива - Finalize(Missiles) или просто
>
> выставить указатель на масив в nil.
Если указатель в nil выставишь, память же не осободится...
Или я чего то не понимаю?? -
> Или я чего то не понимаю??
Так точно.
Для управления памятью в дин. массивах, как и в длин.строках используется механизм подсчета ссылок.
Поскольку одна из ссылок принудительно уст в nil, то уменьшается число ссылок и компилятор здесь автоматически подставит освобождение памяти. -
Sapersky (12.07.07 15:00) [24]Смотрел в Delphi5 - и Finalize, и присвоение nil, и SetLength(ar,0) сводятся к одному и тому же System._DynArrayClear. Т.е. в общем без разницы; но для ясности ИМХО лучше Finalize или SetLength - чтобы потом ненароком не "освободить" присвоением nil обычный указатель.
-
> Sapersky (12.07.07 15:00) [24]
Верно, с учетом [21] -
Ну Jeer, тыж понимаешь, для чего я указал методы освобождения памяти!
Я как то постебался над двумя товарищами :)) именно из за этого.
Тут скажу как есть, по делу:
можно же указать глобальную переменную, масив такого типа.
тогда автоматически память будет освобождаться только после завершения
программы. Но ведь именно в данном случае по окончании игры былоб
разумно обнулять масив, а после начала - динамично выделять память.
В делфе с масивами и указателями проще, С++ небрежностей не прощает :)
поэтому даже в делфе я всегда поступал так, как поступал бы в С++. -
@!!ex © (13.07.07 09:14) [27]> [26] Cash © (13.07.07 07:28)
Самый правильный подход. ИМХО. -
> по окончании игры былоб
> разумно обнулять масив, а после начала - динамично выделять
> память
Ну вот в начале она и перераспределится, зачем освобождать-то :) -
Rembo (24.07.07 00:20) [29]
> При том, что я писал все свободное время не останавливаясь
> практически и не переписывал ничего, при том, что я ЗНАЛ
> что и как надо писать. Тоесть вопросов вида, как же все
> таки сделать это?? не возникало.
Взрыв машины.
@!!ex © (07.07.07 13:23)
Как красиво реализовать?
))))))))))))))) -
@!!ex © (24.07.07 11:57) [30]> [29] Rembo (24.07.07 00:20)
И что?
Каким боком вызрыв машины для скроллера относится к 3D Action'у?
В данном случае разговор о построении архитектуры и базовых алгоритмов.
Кркасота взрыва ну никак не относится к базовым возмлжностям движка. Ферштейн? -
antonn © (24.07.07 12:18) [31]
> @!!ex © (24.07.07 11:57) [30]
[4]
> Кстати мысль...
> Вопрос в том, как програмно порезать машину...
:) -
@!!ex © (24.07.07 12:28) [32]> [31] antonn © (24.07.07 12:18)
и?
Мне интересно че вы пытаетесь доказать. :))
Словами не проще выразить?