|
|
|||||
Регистрация: Jan 2013
Сообщений: 61
|
Тормозит игра
В игре много классов разных и она уже на стадии завершения по этому в исходниках думаю никто копаться не захочет. Объясню поверхностно проблему. Игра стиля tower defence, когда убиваю где-то больше 60 врагов, игра начинает притормаживать и чем больше убиваю, тем больше тормозов. Все мувики удаляю после смертей, проверял, пересчитывал их больше не становится. Слушатели тоже якобы все удаляю. На что еще следует обратить внимание? что я мог забыть? Да, после рестарта, когда я все удаляю со Stage тормоза прекращаются. За ранее спасибо Врагов создаю с использованием таймера, стрелы втыкаются во врагов и исчезают с удалением врага со сцены, при помахивании на стрелах тоже таймера для удаления. Ну и на смерти врага тоже таймер, что бы не сразу исчезал. Удаляю с помощью removeChild и присваивания null.
|
|
|||||
Регистрация: Jan 2013
Сообщений: 61
|
а пул объектов это что? можно чудь развернуть?)) а то похоже на правду
|
|
|||||
Это когда вы заранее создаёте некоторое кол-во объектов в памяти и помещаете их в массив. И достаёте эти объекты оттуда, вместо создания новых. А при удалении объектов, вы их помещаете обратно в массив. Таким образом вы избавляетесь от постоянного создания и удаления объектов, не тратя на это ресурсы компьютера.
|
|
|||||
Регистрация: Jan 2013
Сообщений: 61
|
samana то есть создать врагов, забить их в массив и просто не добавлять addChildом? а разве то, что они висят в памяти не будет тратой ресурсов?)
|
|
|||||
strange mood
|
KingMaks, у вас проблема с тормозами или с потреблением памяти?
При необходимости оптимизации быстродействия самый первый шаг - оптимизировать алгоритмы и найти и выпилить все, что заставляет процессор греться почем зря. Но в какой-то момент ничего лишнего не остается. И тогда наступает момент, мы начинаем выторговывать производительность за счет чего-то еще. Например, переносим какую-то часть громоздких вычислений на тот момент, когда мы можем себе их позволить (т.е., скажем, генерируем/кешируем какую-то графику не в самый разгар битвы, а во время загрузки уровня, пока юзер смотрит на прогрессбар). Или размазываем эти вычисления на большой временной интервал, вычисляя по чуть-чуть за итерацию. Или, если говорить о пуле объектов (да и о кешировании тоже), уменьшаем количество вычислений за счет увеличения потребления памяти. Если на одной чаше весов - "все тормозит, играть невозможно", а на другой - пара мегабайтов памяти, то выгода очевидна.
__________________
тонкий тролль, осеянный благодатью |
|
|||||
Регистрация: Jan 2013
Сообщений: 61
|
Gaen, ну памятью я в принципе готов пожертвовать, раз её так много дело в том, что в игре 10 разновидностей врагов, а на сцене максимум может быть 16 и если предположить, что будет ситуация, когда на сцене все 16 врагов одного вида, то в пул мне придется положить всех видов врагов по 16? то есть 160? это не много?
|
|
|||||
Banned
[+1 30.08.14]
[+1 26.02.14] Регистрация: Apr 2012
Сообщений: 162
|
Если враги меняются только от спрайта, то зачем такие муки? Да даже если они меняются по поведению, тоже не понятно.Class и Class extends.
И удалять только родительский класс. |
Часовой пояс GMT +4, время: 01:03. |
|
« Предыдущая тема | Следующая тема » |
|
|