![]() |
Большое количество графики - Организация
В проекте используется большое количество изображений. Например, тайлы, из которых строится изображение уровня.
Вопрос в том: как это лучше организовать? Загружать Loader'ом или использовать [Embed]? Хотелось бы на выходе иметь только swf файл, а не кучу отдельно лежащих картинок. Прошу прощения, если вопросы покажутся глупыми, до этого писал только на C и C++. Пишу во Flash Builder. |
Если не хочется, чтобы лежала куча картинок, то конечно же [Embed]
Но если этих файлов много, то я бы лучше не стал вшивать их в файл при компиляции и подгружал лодером позже. Меньше вероятность возникновения ошибок |
Цитата:
Выбор варианта всегда за вами, ведь только вы знаете что хотите получить. 1. Грузить отдельно. Плюсы: легко изменять изображения (не требуется перекомпиляция). Минусы: долго грузится, куча загрузок / соединений. 2. Грузить архив. Плюсы: легко изменять изображения (не требуется перекомпиляция). Минусы: тратится время на распаковку архива. 3. Embed. Плюсы: данные доступны сразу после загрузки приложения, не нужны дополнительные операции при клонировании ресурсов. Минусы: при изменении картинки требуется перекомпиляция. Обычно ресурсы уровня компилируются отдельно от приложения, так можно обойти минусы. 4. TileSheet. Тайлы объединяются в простыни. Плюсы: тайловая анимация, меньше "вес" изображений. Минусы: подготовка простыней. 5. Комбинации 2, 3, 4. |
Я работаю в FlashDevelop, там есть удобный способ.
Вектор, битмапы, звуки - всё запихивается в один ролик, каждый символ линкуется и компилируется в swc-библиотеку, которая затем прикрепляется к проекту. Всё компилируется в один файл. Всё компилируется быстро. Растровые анимации у меня сразу порезаны и разложены по кадрам в мувике, проигрыш в размере по сравнению с простынёй - несколько байт, проверено. |
Цитата:
|
Для изометрической игрушки я рисовал и анимировал пероснажа в 3dMax'е, вешал на модельку 4 изометрических камеры(для каждого из 4х видов, с каждой из сторон) и рендерил. Получались на выходе раскадровки из png'шек. После этого создается новый символ в библиотеке, вызывается окно импорта и указывается первый кадр раскадровки. IDE сама предложит импортировать всю раскадровку. Он автоматически вставит в каждый следующий кадр мувика новую битмапу из серии. Всё. После этого нужно только выделить все кадры и сместить точку отчёта системы координат, если она не в левом верхнем углу. Ну и связать с классом естественно. Точно так же, если у меня скажем робот, вид сверху, нарисован в растре, в фотошопе, раскадровка, где он шевелит руками ногами, то я сразу бы её нарезал и сделал из неё мувик.
Если бы я программировал обычную игрушку,не флешку, то из этих раскадровок мне пришлось бы делать tile-листы. Для flash я этого не делал, провёл тесты и оказалось, что выигрыш значительно меньше, чем заморочка(выигрыш в размере, производительность меня устраивала). Хотя, помнится, кто-то на форуме здесь рассказывал, что он даже у картинок заголовки откусывал, чтобы сэкономить. |
Цитата:
|
Цитата:
И еще одно. copyPixels не самая быстрая функция. Поэтому, при большом количестве объектов, пришлось бы всё равно заранее нарезать простыню на битмапы в памяти и держать pool. И опять же какая разница, нарезать битмапы из простыни, или из мувика? |
Цитата:
|
Я не тестировал, спорить не буду. В любом случае отошли от темы.
|
| Часовой пояс GMT +4, время: 12:18. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.