Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Много графики для 2Д рендера (http://www.flasher.ru/forum/showthread.php?t=123375)

_dm 31.03.2009 19:45

Много графики для 2Д рендера
 
Всем привет!
Хочу наваять к игре 2д рендер на АС3, который будет брать BitmapData и рисовать на экран. Потому что по-обычному через gotoAndPlay медленно.
Но есть одно НО... как справиться с кучей .png графики? Есть монстр у которого 4 анимации(walk, die, attack1 и attack2)
в каждой анимации 25-30 кадров, итого 100-120 картинок. Монстр, конечно, не один, поэтому картинок куда больше.

Есть 2 варианта:
- вручную импортировать кучу картинок в библиотеку, ставить всем галочку export for ActionScript, придумывать уникальное имя.
Минус в том, что это долго... может можно как-то заставить флеш автоматически экспортировать картинки для АС?
- юзать [Embed], не знаю что из этого выйдет, но тут хотя бы не нужно нажимать кучу кнопок и можно написать кодогенератор на Цпп.

Может можно ещё как-то? Как можно облегчить процесс управления всей этой графикой, чтобы потом не запутаться, когда её станет ещё больше?

mre 31.03.2009 19:50

Не думаю, что будет быстрее, чем gotoAndPlay.

dimarik 31.03.2009 19:50

Отдельная библиотека .swf с битмапами. Для импорта картинок и галочек export for ActionScript использовать jsfl скрипт.

Dimonte 31.03.2009 20:02

У вас что, каждый кадр анимации - отдельная картинка? Если да, то крайне рекомендую их собрать в спрайтмапы и рисовать методом сopyPixels нужные кадры на вашу BitmapData. Такой метод точно быстрее анимации через gotoAndPlay.

_dm 31.03.2009 20:19

Цитата:

Сообщение от mre (Сообщение 809848)
Не думаю, что будет быстрее, чем gotoAndPlay.

Сам сравни :) Вот тут внизу страницы флешка с разными способами отрисовки.

Цитата:

Сообщение от dimarik
Для импорта картинок и галочек export for ActionScript использовать jsfl скрипт.

Можно подробнее? Как его написать? Может линк какой-нить полезный есть?

Цитата:

Сообщение от Dimonte
У вас что, каждый кадр анимации - отдельная картинка? Если да, то крайне рекомендую их собрать в спрайтмапы и рисовать методом сopyPixels нужные кадры на вашу BitmapData. Такой метод точно быстрее анимации через gotoAndPlay.

Если собирать в атласы файлов будет меньше, надо будет попробовать, вот только они огромные могут выйти :(

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

BlooDHounD 31.03.2009 20:26

Dimonte, с чего Вы взяли?

Dimonte 31.03.2009 20:35

BlooDHounD, с чего я взял что?

Работа с BitmapData точно быстрее, чем отрисовка DisplayObject'ов силами векторного рендерера плеера, по той же ссылке на 8bitrocket видно. Чем больше объектов на экране, тем быстрее.

Собирать же отдельные картинки кадров в спрайтмапы, я считаю, просто удобнее. Анимация в любом случае будет храниться в памяти, так что ее использование будет всегда одинаковым.

Доступ же к области BitmapData через простое математическое выражение по-моему быстрее происходит, чем доступ к, допустим, массиву с кадрами анимации в качестве элементов.

BlooDHounD 31.03.2009 20:38

Сказано, что там тоже битмапки, а не вектор. + там не проведено тестов, где перерисовывается, только ~30 области экрана. там тесты с перерисовкой всего экрана.

Dimonte 31.03.2009 20:54

BlooDHounD, я, честно говоря, не совсем понимаю, к чему вы клоните.

Выдернуто из текста статьи по ссылке:
Цитата:

Model # 4: Animate with GAS. Output to individual sprites.
...
I built a MovieClip in the library with all 8 frames and a stop on each frame. I copied the Bitmaps from my sprite sheet to individual MovieClips and added one to each frame.
Это вот отрисовка изначально Bitmap-объектов силами базового рендерера флеш плеера. Как видно из статьи, она и дает самые худшие результаты.

Если я правильно понял автора темы, у него ситуация точно такая же, как и у автора статьи. Уже есть битмапы со всей графикой, и их надо быстро рисовать. Для этого copyPixels быстрее.

Насчет перерисовки части экрана, да, в статье таких тестов нет, тем не менее, если есть какой-то анимированный или хотя бы просто движущийся фон, то перерисовывать придется всю картинку все равно.

_dm 31.03.2009 21:01

Цитата:

Уже есть битмапы со всей графикой, и их надо быстро рисовать.
Ага, так и есть.

З.Ы. кто-нибудь знает хороший утиль для создания атласов из .png? А то я что-то не могу ничо найти :(

Правка: нашел прогу для склейки, в движке HGE есть :)


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

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