Показать сообщение отдельно
Старый 14.10.2011, 12:53
stweet вне форума Посмотреть профиль Отправить личное сообщение для stweet Найти все сообщения от stweet
  № 7  
Ответить с цитированием
stweet
 
Аватар для stweet

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
Цитата:
Сообщение от Genzo Посмотреть сообщение
используйте tweener для таких вещей , есть много реализаций (родную лучше не используйте) поищите информацию на тему TweenerLite ,например.
Как правило, если бороться за производительность, то и greensock не поможет. Причина в том что на каждый твин он так же использует по своему таймеру.

выход из вашей ситуации:
не использовать на каждого перса по индивидуальному двигателю!
значит получается: Пишем у каждого перса (и во всей игре целиком - желательно) общие методы к примеру "moveObject();" а в основном классе игры регистрируем таймер и в цикле пробегаем по всем динамическим объектам. К примеру обходим в цикле объекты враги:
Код AS3:
private function allMoveObject (e:TimerEvent):void
{
    for (var i:int = 0; i < allEnemyNum; i ++)
    {
        if (allEnemy[i] != kill)
        {
            // всякие проверки на столкновение и т.п. манипуляции с объектом
            allEnemy[i].x ++;
        }
    }
}
 
// такой манёвр значительно ускорит приложение и снизит загрузку памяти.
Добавлено через 4 минуты
Цитата:
Сообщение от Vansimar Посмотреть сообщение
а персонаж то постоянно ходит,получается чтоб противник постоянно следовал за игроком нужно это опять же в ENTER_FRAME все делать?
так же в приведённом выше примере можно проверять какая клавиша зажата для движения героем, проверять дистанцию от героя до врага и в случае попадания в область видимости, врагу сообщать новое движение по напровлению к герою, ох, столько всего замутить можно =)))
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!