![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2010
Адрес: Moscow
Сообщений: 473
|
У меня вот есть класс для каждого уровня, Level_1,Level_2...Level_n , и так же классы для персонажей и так далее.. получается в конструкторе например класса Level_1 нужно добавить объекты, и там же в конструкторе зарегистрировать таймер ,и в этом классе создать функцию private function allMoveObject (e:TimerEvent):void ?
|
|
|||||
public function moveAllObject (e:TimerEvent):void { var killEnemy:Array = []; var i:int; for (i = 0; i < counterEnemy; i ++) { // типа проверили дистанцию между врагом и героем if (needDistancion < maxDistancion) { // допустим герой убивает в ближнем бою врага killEnemy.push(i); } else { allEnemy[i].x += vx; allEnemy[i].y += vy; // далее можно проверить достиг ли враг // припятствия и стоит ли ему сменить вектор движения // ... } } // проверяем есть ли мёртвые враги? if (killEnemy.length > 0) { for (i = 0; i < killEnemy.length; i ++) { // удаляем объекты из массива врагов. removeChild(allEnemy[killEnemy[i]]); allEnemy.splice(killEnemy[i], 1); } } // Двигаем героя. if (onLeftDown) hero.x --; if (onRightDown) hero.x ++; if (onTopDown) hero.y --; if (onBottomDown) hero.y ++; // Проверяем путь героя. if (hero.distancion < warDistancion) { // меняем направление гироя или запрещаем идти. // ... } // и так далее ... // дале ... detectPositionNext01(); // можно даже продолжать выполнять статические методы из абстрактных классов. if (globalMethod != null) globalMethod.call(); // Перерисовываем экран после всех манипуляций ... e.updateAfterEvent(); }
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь! Последний раз редактировалось stweet; 14.10.2011 в 13:39. |
|
|||||
|
Регистрация: Sep 2010
Адрес: Moscow
Сообщений: 473
|
А не будет ли это все тормозить?и какой лучше шаг времени указать?
|
|
|||||
|
Цитата:
__________________
http://www.chessmax.ru |
|
|||||
|
[+1 24.05.11]
[+1 09.08.11] Регистрация: Mar 2011
Сообщений: 101
|
Тормозить скорее всего будут сами мувики персонажей , если не оптимизированы или сделаны вектором.
|
|
|||||
|
1. проц Е5200, оперативы 3.5 г. смело держит до 300 объектов с просчётами на столкновение друг с другом с разрешением рендера 1024х768. Тут правильно подметили, всё зависит от оптимизации кода и формат используемой графики. Плюсом будит если объекты выходящие за рамки рендера станут не активными что тоже снизит потребляемость памяти, т.е. не надейтесь что объекты которых вы не видите на экране но добавленные на стейдж исключены из просчётов, желательно рисовать и просчитывать только то что попадает в видимую область.
2. Всегда выставляю делай на "0", но использую счётчики, это позволяет в случаях перегруза метода оттянут тот или иной просчёт на потом что бы не прерывать операцию таймера. вывод, делая игры думать надо как "сишник" о памяти, т.е. взял-отдал. И если знать все тонкости машинного кода, то можно огогого как творить))) Помни, машине твоей легче умножить а не разделить!
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь! |
|
|||||
|
Регистрация: Sep 2010
Адрес: Moscow
Сообщений: 473
|
А можно когда добавляю их на сцену прежде делать cacheAsBitmap , это поможет?
|
|
|||||
|
[+1 24.05.11]
[+1 09.08.11] Регистрация: Mar 2011
Сообщений: 101
|
Если изначально графика векторная и не будет вращения или маштабирования - то да. В противном случае станет еще хуже. Если у вас при 4 моделях начинает тормозить - это явно проблема в моделях. Расчетная часть, хоть там сто проверок будет стоять не нагрузит так. Копайте с сторону моделей.
|
|
|||||
|
Регистрация: Sep 2010
Адрес: Moscow
Сообщений: 473
|
Вот помоему решение производительности анимации http://blog.touchmypixel.com/2008/04...ed-animations/ и еще спросить хотел cacheAsBitmap лучше использовать для фона например и вобще статических картинок?
|
|
|||||
|
Цитата:
__________________
http://www.chessmax.ru Последний раз редактировалось Inet_PC; 15.10.2011 в 00:18. |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:43. |
|
|
« Предыдущая тема | Следующая тема » |
|
|