Показать сообщение отдельно
Старый 07.08.2012, 09:05
elder_Nosferatu вне форума Посмотреть профиль Отправить личное сообщение для elder_Nosferatu Найти все сообщения от elder_Nosferatu
  № 2  
Ответить с цитированием
elder_Nosferatu
 
Аватар для elder_Nosferatu

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
Эх...
....
Все маты-перематы я уже написал, а потом удалил. Нервы мои немного успокоились. Перейдем к делу.

Все ваши частици (они же Спрайты) занимают много памяти, все их твинеры тоже не подарочки... Все создания экземпляров классов занимают время. Теперь умножим эти расходы на 100 (предел количества частиц) и получим внушительный результат. Но если не ограничить количество частиц, тогда все нормально - ваш ролик сожрет все ресурсы и либо плеер его "выплюнет", либо вы сами его выключите (возможно даже через диспетчер задач если сильно зависнет), так что это безобразие долго не продлится

С вашим кодом не особо знакомился, но могу сказать одно - "ПЛОХО".

Подойдите к задаче следующим образом:
Создаете все, что связано с частцей кждий раз, пока длинна массива частиц не будет равна максимальному их количеству. Если уже достаточно, тогда выбрасываете из массыва частиц првую, ту что с индексом "0" (Array#shift()), переопределяете ее параметры и добавляете ее в конец массива (Array#push()). Таким образом у вас не только расход памяти не превысит заданый димит, но и тратиь процессорное время на создание новой частици не прийдется!

Также посоветовал бы создать отдельный класс для частицы, который умеет начинать "жизнь" (в вашем коде это рисование круга определенного радиуса, установка определенной прозрачности, назначение начальных координат и т.д.), собственно жить (у вас - твинить свое положение) и умирать (останавливать твиннер, удалять нарисованный круг, сбрасывать прозрачность).
Потом создадите класс коллекции частиц, который будет их создавать, назначать им стартовые параметры существования, следить за количеством частиц и по необходимости брать самую старую, убивать ее и воскрешать с новыми параметрами.

Конечно, в итоге получится больше кода, но он будет понятнее и не будеть жрать больше ресурсов, чем положено.