Конференция "Игры" » Алгоритм выстрела [Delphi, Windows]
 
  • Cash © (12.07.07 09:48) [20]
    (ех... странник зашел на огонек к знакомым, а они все такие же, радует ^^)
    Код 0-го поста написан своими руками? Если да, то не верю! :)

    В сторону объектов и классов даж плевать не буду, наверное еще рано...
    Масив, причем именно того типа, который ANTPro в [18] указал.

    * выделение масива в N записей -
    SetLength(Missiles, N)


    * освобождение памяти масива -
    Finalize(Missiles)

    или просто
    выставить указатель на масив в nil.
    * обращение к N-ому элементу масива -
    Missiles[N]


    да... вощем вроде все ^^

    (т.к. давно вернулся в обитель C++, точно не помню параметров,
    а справки делфевой на работе нету :))) )
  • Jeer © (12.07.07 10:11) [21]

    > освобождение памяти масива - Finalize(Missiles) или просто
    > выставить указатель на масив в nil.


    В Delphi освобождение памяти, выделенной под длинные строки и динамические массивы - автоматическое, при выходе из зоны видимости.
    В пределах зоны видимости целесообразнее делать переопределение длины через SetLength(ar,0), если того требует функциональность
  • @!!ex © (12.07.07 10:41) [22]
    > освобождение памяти масива - Finalize(Missiles) или просто
    >
    > выставить указатель на масив в nil.

    Если указатель в nil выставишь, память же не осободится...
    Или я чего то не понимаю??
  • Jeer © (12.07.07 12:59) [23]

    > Или я чего то не понимаю??


    Так точно.
    Для управления памятью в дин. массивах, как и в длин.строках используется механизм подсчета ссылок.
    Поскольку одна из ссылок принудительно уст в nil, то уменьшается число ссылок и компилятор здесь автоматически подставит освобождение памяти.
  • Sapersky (12.07.07 15:00) [24]
    Смотрел в Delphi5 - и Finalize, и присвоение nil, и SetLength(ar,0) сводятся к одному и тому же System._DynArrayClear. Т.е. в общем без разницы; но для ясности ИМХО лучше Finalize или SetLength - чтобы потом ненароком не "освободить" присвоением nil обычный указатель.
  • Jeer © (12.07.07 16:43) [25]

    > Sapersky   (12.07.07 15:00) [24]


    Верно, с учетом [21]
  • Cash © (13.07.07 07:28) [26]
    Ну Jeer, тыж понимаешь, для чего я указал методы освобождения памяти!
    Я как то постебался над двумя товарищами :)) именно из за этого.

    Тут скажу как есть, по делу:
    можно же указать глобальную переменную, масив такого типа.
    тогда автоматически память будет освобождаться только после завершения
    программы. Но ведь именно в данном случае по окончании игры былоб
    разумно обнулять масив, а после начала - динамично выделять память.

    В делфе с масивами и указателями проще, С++ небрежностей не прощает :)
    поэтому даже в делфе я всегда поступал так, как поступал бы в С++.
  • @!!ex © (13.07.07 09:14) [27]
    > [26] Cash ©   (13.07.07 07:28)

    Самый правильный подход. ИМХО.
  • Jeer © (13.07.07 13:47) [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)

    и?
    Мне интересно че вы пытаетесь доказать. :))
    Словами не проще выразить?
 
Конференция "Игры" » Алгоритм выстрела [Delphi, Windows]
Есть новые Нет новых   [134431   +10][b:0][p:0.001]