Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Большое количество графики - Организация (http://www.flasher.ru/forum/showthread.php?t=148289)

Kovarny 27.12.2010 09:35

Большое количество графики - Организация
 
В проекте используется большое количество изображений. Например, тайлы, из которых строится изображение уровня.
Вопрос в том: как это лучше организовать? Загружать Loader'ом или использовать [Embed]? Хотелось бы на выходе иметь только swf файл, а не кучу отдельно лежащих картинок. Прошу прощения, если вопросы покажутся глупыми, до этого писал только на C и C++.
Пишу во Flash Builder.

goodguy 27.12.2010 12:09

Если не хочется, чтобы лежала куча картинок, то конечно же [Embed]
Но если этих файлов много, то я бы лучше не стал вшивать их в файл при компиляции и подгружал лодером позже. Меньше вероятность возникновения ошибок

alatar 27.12.2010 12:16

Цитата:

Хотелось бы на выходе иметь только swf файл
Вот и ответ на ваш вопрос. :)
Выбор варианта всегда за вами, ведь только вы знаете что хотите получить.
1. Грузить отдельно. Плюсы: легко изменять изображения (не требуется перекомпиляция). Минусы: долго грузится, куча загрузок / соединений.
2. Грузить архив. Плюсы: легко изменять изображения (не требуется перекомпиляция). Минусы: тратится время на распаковку архива.
3. Embed. Плюсы: данные доступны сразу после загрузки приложения, не нужны дополнительные операции при клонировании ресурсов. Минусы: при изменении картинки требуется перекомпиляция. Обычно ресурсы уровня компилируются отдельно от приложения, так можно обойти минусы.
4. TileSheet. Тайлы объединяются в простыни. Плюсы: тайловая анимация, меньше "вес" изображений. Минусы: подготовка простыней.
5. Комбинации 2, 3, 4.

iflamberg 27.12.2010 13:37

Я работаю в FlashDevelop, там есть удобный способ.
Вектор, битмапы, звуки - всё запихивается в один ролик, каждый символ линкуется и компилируется в swc-библиотеку, которая затем прикрепляется к проекту. Всё компилируется в один файл. Всё компилируется быстро. Растровые анимации у меня сразу порезаны и разложены по кадрам в мувике, проигрыш в размере по сравнению с простынёй - несколько байт, проверено.

TanaTiX 27.12.2010 13:42

Цитата:

Растровые анимации у меня сразу порезаны и разложены по кадрам в мувике
Недопонял ту фразу. Это без ИДЕ сразу анимация создана? Можно поподробней?

iflamberg 27.12.2010 17:17

Для изометрической игрушки я рисовал и анимировал пероснажа в 3dMax'е, вешал на модельку 4 изометрических камеры(для каждого из 4х видов, с каждой из сторон) и рендерил. Получались на выходе раскадровки из png'шек. После этого создается новый символ в библиотеке, вызывается окно импорта и указывается первый кадр раскадровки. IDE сама предложит импортировать всю раскадровку. Он автоматически вставит в каждый следующий кадр мувика новую битмапу из серии. Всё. После этого нужно только выделить все кадры и сместить точку отчёта системы координат, если она не в левом верхнем углу. Ну и связать с классом естественно. Точно так же, если у меня скажем робот, вид сверху, нарисован в растре, в фотошопе, раскадровка, где он шевелит руками ногами, то я сразу бы её нарезал и сделал из неё мувик.
Если бы я программировал обычную игрушку,не флешку, то из этих раскадровок мне пришлось бы делать tile-листы. Для flash я этого не делал, провёл тесты и оказалось, что выигрыш значительно меньше, чем заморочка(выигрыш в размере, производительность меня устраивала). Хотя, помнится, кто-то на форуме здесь рассказывал, что он даже у картинок заголовки откусывал, чтобы сэкономить.

alatar 27.12.2010 17:20

Цитата:

Для flash я этого не делал, провёл тесты и оказалось, что выигрыш значительно меньше, чем заморочка
Вы не учитываете, что в случае простыни будет использована одна BitmapData для всех экземпляров объекта.

iflamberg 27.12.2010 17:38

Цитата:

выигрыш в размере, производительность меня устраивала
Какая мне разница? Меня интересуют мои трудозатраты в первую очередь. Всех интересуют, иначе бы ни у кого ОС не падала и игрушки не тормозили.

И еще одно. copyPixels не самая быстрая функция. Поэтому, при большом количестве объектов, пришлось бы всё равно заранее нарезать простыню на битмапы в памяти и держать pool. И опять же какая разница, нарезать битмапы из простыни, или из мувика?

alatar 27.12.2010 18:09

Цитата:

И еще одно. copyPixels не самая быстрая функция. Поэтому, при большом количестве объектов, пришлось бы всё равно заранее нарезать простыню на битмапы в памяти и держать pool.
Как раз при большом количестве объектов это крайне вредно. Пара сотен клипов (особенно интерактивных) добавленных на сцену рендерятся гораздо медленнее любого copyPixels.

iflamberg 27.12.2010 18:42

Я не тестировал, спорить не буду. В любом случае отошли от темы.


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

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