![]() |
Производительность на примере игрового персонажа
Как сейчас у меня реализовано:
Есть игровой персонаж. У него есть разные состояния - идет, стоит, бьет и т.п. Персонаж представляет из себя мувиклип внутри которого находятся мувиклипы разных состояний и чтобы сменить одно состояние на другое достаточно все мувиклипы кроме нужного сделать невидимым. Стоит отметить что при инициализации персонаж нужно раскрасить и одеть, т.е. пробежаться по всем мувиклипам состояния и сделать следующие действия: 1) Раскрасить (наложение (ColorMatrixFilter) на разные части тела) 2) Одеть (вставить в разные части тела спрайты одежды). Вопрос - как сделать иначе, чтобы меньше тормозило при отображении? Имеет ли смысл объединить все состояния в одно и бегать по frameLabel'ам? |
Поднимаю тему.
|
поднимать темы не стоит...
по сабжу - бегать по фреймам - не айс, по-моему. поскольку заходя каждый раз в фрэйм вам по новой его нужно красить и проводить остальные манипуляции |
Нарисуйте части тела (дефолтные)
Сложите их в один мувик со всеми анимациями (бить-стрелять и тд) Добавьте этот мувик на сцену Через getChildByName или еще как-то очистите (removeChildAt) текущее содержимое частей тела и поставьте на их место заранее отрисованые в bitmap скины для частей тела. То есть первоначально отрисованный персонаж будет просто анимированным набором контейнеров, в которые мы затем добавляем нужные нам скины |
1. Делать части невидимыми лучше при помощи removeChild, нежели visible=false и боже упаси alpha=0.
2. Имеет смысл включить битмап-кэширование для кусков персонажа, чтобы флэш не вычислял ColorTransform при отрисовке каждого кадра. 3. Более жестокое кэширование: одеваем-красим, затем пробегаемся по всем анимациям состояний, на каждом кадре срисовываем персонажа в битмап, затем вместо мувиков с анимацией используем мувик, который показывает полученную последовательность. |
Битмап работает быстрее, чем векторная графика?
|
Что по-вашему быстрее: отрисовать пачку пикселей, или по формулам кривых просчитать каждую замкнутую область, проверить на пересечение, рассчитать цвета и градиенты, наложить на это цветовую трансформацию, учесть поворот и искажение родительских контейнеров, чтобы вычислить в итоге ту же пачку пикселей, и только потом её отрисовать? :)
|
Цитата:
Цитата:
|
Да, логично. Время загрузки только растет.
|
Цитата:
|
| Часовой пояс GMT +4, время: 15:23. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.