![]() |
Организация перемещений персонажей
Вот смотрите ,у меня есть класс врага ,допустим Enemy_per, в нем я добавляю слушатель событий ENTER_FRAME и там прописываю код на перемещение персонажа,те постоянное движение,от одного края до другого ,разворачивается и обратно и так все время.. Потом я наследую от него еще класса 4, и добавляю на сцену их, да,персонажи ходят,но это вешает производительность , все тормозит еле двигается, есть ли какая нибудь альтернатива ENTER_FRAM'у чтоб не так вешало..
|
1 - Enemy_per , не по принятым стандартам лучше EnemyPer
2 - используйте tweener для таких вещей , есть много реализаций (родную лучше не используйте) поищите информацию на тему TweenerLite ,например. |
|
Да он.
|
ну ладно посмотрю)спасибо
Добавлено через 8 минут а вот допустим у меня главный игрок постоянно перемещается(управление с клавиатуры) а у нему идут противники, у твинера есть метод TweenMax.to(mc, 1, {x:65, y:117}); те он двигает к определенной точке,а персонаж то постоянно ходит,получается чтоб противник постоянно следовал за игроком нужно это опять же в ENTER_FRAME все делать? |
вешайте на завершение анимации персонажа (передвижение) или на начало нового движение события которые будут направлять противников к игроку , вообще это сложная логика все зависит от конкретной реализации - способов много
|
Цитата:
выход из вашей ситуации: не использовать на каждого перса по индивидуальному двигателю! значит получается: Пишем у каждого перса (и во всей игре целиком - желательно) общие методы к примеру "moveObject();" а в основном классе игры регистрируем таймер и в цикле пробегаем по всем динамическим объектам. К примеру обходим в цикле объекты враги: Код AS3:
Цитата:
|
те получается каждый шаг времени функция будет проверять какая кнопка зажата, каких игровых объектов двигать, какие сталкиваются,кто умер,и так далее?
|
ессессеенноо)))
|
тогда уже лучше иметь 2 контроллера : персонажа и скопа врагов , а то получается что-то сродни :
Код:
while(true) readln |
У меня вот есть класс для каждого уровня, Level_1,Level_2...Level_n , и так же классы для персонажей и так далее.. получается в конструкторе например класса Level_1 нужно добавить объекты, и там же в конструкторе зарегистрировать таймер ,и в этом классе создать функцию private function allMoveObject (e:TimerEvent):void ?
|
Код AS3:
|
А не будет ли это все тормозить?и какой лучше шаг времени указать?
|
Цитата:
|
Тормозить скорее всего будут сами мувики персонажей , если не оптимизированы или сделаны вектором.
|
Цитата:
2. Всегда выставляю делай на "0", но использую счётчики, это позволяет в случаях перегруза метода оттянут тот или иной просчёт на потом что бы не прерывать операцию таймера. вывод, делая игры думать надо как "сишник" о памяти, т.е. взял-отдал. И если знать все тонкости машинного кода, то можно огогого как творить))) Помни, машине твоей легче умножить а не разделить! |
А можно когда добавляю их на сцену прежде делать cacheAsBitmap , это поможет?
|
Цитата:
|
Вот помоему решение производительности анимации http://blog.touchmypixel.com/2008/04...ed-animations/ и еще спросить хотел cacheAsBitmap лучше использовать для фона например и вобще статических картинок?
|
Цитата:
|
AntKarlov в своем блоге писал что ему эти классы помогли сделать нормальную оптимизацию и избавиться от тормозов,и в самом примере видно что с этими классами фпс == 50; а без у меня примерно фпс ==7.
|
Цитата:
Добавлено через 4 минуты Схема в принципе похожа, только реализация по компактнее. :) |
Ну я код еще не писал,пока просто обдумываю все,а вот анимация так--
-Контейнер персонажа -три кадра -Хотьба -Состояние покоя -Умирание Потом сам мувик так разбирается - Контейнер для персонажа - Контейнер для туловища головы и ног -в нем мувики всех этих частей - Контейнер для рук с оружием //чтоб можно было менять оружие -оружие с руками Добавлено через 30 секунд а что за конвертер? |
Цитата:
Все решилось ручным конвертированием деталей анимации в битмапы, благо в 5.5 флеше есть функция "преобразовать в битмап". То есть все двигающиеся куски, которые не содержат анимации внутри себя преобразуем в битмапу. Если масштабирования не предвидится, то дает весьма приятный результат. |
а тот класс что я линк кидал не нужно использовать?
Добавлено через 1 минуту Цитата:
|
| Часовой пояс GMT +4, время: 09:01. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.