Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > Алгоритм:объект на карте, может быть съеден, но


Автор: 604 10.9.2006, 22:51
Приветствую!
Никак не могу придумать алгоритм для такого игрового события.
На карте находятся объекты(количество произвольное, в зависимости от игровой карты), который может быть сьеден игроком. Но через некоторое время он снова должен появится в том же месте.
Пока что пришол в голову только вариант со списком обьектов... при сьедании объекта в списке создается новый объект... далее в цикле игры весь список обходится.. проверяется время смерти каждого объекта попавшего в список и если время вышло, ставим его обратно на карту. Есть ли смысл убирать объекты из списка, или лучше будет добавить к объекту дополнительный флаг(жив\мертв)?
Не является ли мой алгоритм слишком расточительным? можно ли реализовать эту задачку более оптимально?

Автор: 02077461 11.9.2006, 10:04
Если уж ты уже пошел путем создания экземпляра класса для каждого объекта, то лучше делать флаг, который сам объект будет себе обновлять по прошествии времени. 
Цитата(604 @  10.9.2006,  22:51 Найти цитируемый пост)
при сьедании объекта в списке создается новый объект
 Если тот же объект появляется на том же месте, то зачем создавать еще один экземпляр?.
Насчет оптимальности ничего сказать не могу, к сожалению. 

Автор: 604 11.9.2006, 12:55
Похоже не совсем корректно выразил свою идею. При создании карты, объекты которые будут обладать вышеописанным поведением будут загонятся в список(объекты создаются 1 раз при загрузке карты и помещаются в список). У объектов будет поле времяСмерти. В цикле игры, будет обходится весь список и проверятся поле времяСмерти, если время воскрешения вышло то обьект снова становится видимым на карте. Что то меня смущает этот подход, но ничего другого придумать не могу :-(

Автор: redrick 11.9.2006, 23:27
насчет алгоритма выссказываться не буду, но вот насчет оптимальности - собственно то что сказал 
02077461, - пересоздавать объекты не надо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)