Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.12.2010, 10:07
bebop вне форума Посмотреть профиль Отправить личное сообщение для bebop Найти все сообщения от bebop
  № 1  
Ответить с цитированием
bebop
 
Аватар для bebop

Регистрация: Dec 2006
Адрес: Novosibirsk
Сообщений: 93
По умолчанию Производительность на примере игрового персонажа

Как сейчас у меня реализовано:

Есть игровой персонаж. У него есть разные состояния - идет, стоит, бьет и т.п. Персонаж представляет из себя мувиклип внутри которого находятся мувиклипы разных состояний и чтобы сменить одно состояние на другое достаточно все мувиклипы кроме нужного сделать невидимым.

Стоит отметить что при инициализации персонаж нужно раскрасить и одеть, т.е. пробежаться по всем мувиклипам состояния и сделать следующие действия:
1) Раскрасить (наложение (ColorMatrixFilter) на разные части тела)
2) Одеть (вставить в разные части тела спрайты одежды).

Вопрос - как сделать иначе, чтобы меньше тормозило при отображении? Имеет ли смысл объединить все состояния в одно и бегать по frameLabel'ам?

Старый 20.12.2010, 14:04
bebop вне форума Посмотреть профиль Отправить личное сообщение для bebop Найти все сообщения от bebop
  № 2  
Ответить с цитированием
bebop
 
Аватар для bebop

Регистрация: Dec 2006
Адрес: Novosibirsk
Сообщений: 93
Поднимаю тему.

Старый 20.12.2010, 14:14
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 3  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
поднимать темы не стоит...

по сабжу - бегать по фреймам - не айс, по-моему. поскольку заходя каждый раз в фрэйм вам по новой его нужно красить и проводить остальные манипуляции
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 20.12.2010, 14:20
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 4  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Нарисуйте части тела (дефолтные)
Сложите их в один мувик со всеми анимациями (бить-стрелять и тд)
Добавьте этот мувик на сцену
Через getChildByName или еще как-то очистите (removeChildAt) текущее содержимое частей тела и поставьте на их место заранее отрисованые в bitmap скины для частей тела.

То есть первоначально отрисованный персонаж будет просто анимированным набором контейнеров, в которые мы затем добавляем нужные нам скины
__________________
...вселенская грусть

Старый 20.12.2010, 14:25
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 5  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
1. Делать части невидимыми лучше при помощи removeChild, нежели visible=false и боже упаси alpha=0.
2. Имеет смысл включить битмап-кэширование для кусков персонажа, чтобы флэш не вычислял ColorTransform при отрисовке каждого кадра.
3. Более жестокое кэширование: одеваем-красим, затем пробегаемся по всем анимациям состояний, на каждом кадре срисовываем персонажа в битмап, затем вместо мувиков с анимацией используем мувик, который показывает полученную последовательность.
__________________
тонкий тролль, осеянный благодатью

Старый 20.12.2010, 15:50
Nemez вне форума Посмотреть профиль Отправить личное сообщение для Nemez Найти все сообщения от Nemez
  № 6  
Ответить с цитированием
Nemez
 
Аватар для Nemez

Регистрация: Jun 2010
Сообщений: 189
Битмап работает быстрее, чем векторная графика?

Старый 20.12.2010, 16:04
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 7  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Что по-вашему быстрее: отрисовать пачку пикселей, или по формулам кривых просчитать каждую замкнутую область, проверить на пересечение, рассчитать цвета и градиенты, наложить на это цветовую трансформацию, учесть поворот и искажение родительских контейнеров, чтобы вычислить в итоге ту же пачку пикселей, и только потом её отрисовать?
__________________
тонкий тролль, осеянный благодатью

Старый 21.12.2010, 00:14
surlac вне форума Посмотреть профиль Отправить личное сообщение для surlac Найти все сообщения от surlac
  № 8  
Ответить с цитированием
surlac
 
Аватар для surlac

блогер
Регистрация: Nov 2010
Сообщений: 143
Записей в блоге: 1
Цитата:
Сообщение от Nemez Посмотреть сообщение
Битмап работает быстрее, чем векторная графика?
Тут даже сам адоб рекомендует вместо постоянной перерисовки векторов использовать битмап.

Цитата:
Путем непосредственной манипуляции объектом BitmapData можно создавать сложные изображения без необходимости постоянно перерисовывать содержимое из векторных данных в каждом кадре

Старый 21.12.2010, 00:19
Nemez вне форума Посмотреть профиль Отправить личное сообщение для Nemez Найти все сообщения от Nemez
  № 9  
Ответить с цитированием
Nemez
 
Аватар для Nemez

Регистрация: Jun 2010
Сообщений: 189
Да, логично. Время загрузки только растет.

Старый 21.12.2010, 00:26
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 10  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
Время загрузки только растет
Можно загрузить векторную графику и потом отрисовать ее в битмап. Время загрузки останется небольшим, а скорость работы приложения вырастет ощутимо.
__________________
...вселенская грусть

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:42.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 16:42.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.