![]() |
Многокомпонентная анимация персонажа - как реализовать?
Есть персонаж в изометрической РПГ, графика сохранена в виде кучи png файлов:
Man_Move_Right_001.png, Man_Move_Right_002.png, <...> - кадры анимации движения голого перса AK_Move_Right_001.png, AK_Move_Right_002.png, <...> - кадры анимации автомата при движении перса и так далее. Как всё это собирать в один мувик? В голову приходит три варианта: 1. Сделать отдельные мувики движений разных частей, сделать класс-контейнер, который будет следить за синхронностью движений, управлять переключением кадров, добавлять-удалять компоненты анимации. В этом варианте пугает, что для каждого кадра в оперативной памяти будет несколько изображений, что для одного персонажа будет несколько мувиков. 2. При появлении персонажа создавать мувик, в каждый кадр которого ставить Bitmap, полученный сложением кадров одетых вещей. Такой вариант видимо будет быстрее воспроизводиться и меньше памяти требовать. 3. Сделать отдельные мувики движений разных частей, а при появлении персонажа собирать из кадров этих отдельных мувиков один общий (просто добавляя shape'ы в кадры, без использования Bitmap). Такой вариант анимации наверное будет воспроизводиться быстрее первого, но медленнее второго, а инициализироваться быстрее второго, но медленнее первого. Посоветуйте, какой вариант выбрать? Или может быть есть ещё варианты? |
Цитата:
|
Соберите в каждый swf как ресурс. Съэкономите на времени ожидания загрузки для конечного пользователя.
|
Проблема, как я понимаю, в том числе и в том, что заранее все варианты в мувик не собрать. С тем, чтобы собрать голого лысого перса в один клип, вопросов нет. Но пользователь в процессе игры докупает для него одежду, аксессуары, прическу меняет.
Все равно получается контейнер, к котором стопкой лежат мувиклипы, синхронизированные по таймлайну, как я понимаю. Хотя, конечно, с точки программирования идеальный вариант, когда все внутри уже реализовано, а ты просто выставляешь/убираешь альфу. Но это для простых случаев. |
сделал так(первый вариант):
Код AS3:
Думаю второй был бы быстрее... Но с ним не знаю как лучше сделать смену изображений в зависимости от кадра (собственно анимацию). Просто подписать обработчик события EnterFrame с сменой битмапДаты? Не будет ли это слишком долго? |
http://blog.hexagonstar.com/animatedbitmapclass/
вот что-то похожее делал: http://k0t0vich.megaforce.ru/test/fl...t/Animtest.swf |
Цитата:
|
очень шустро и очень криво =)
|
Цитата:
Там xml - персонажа кривая (координаты, положения, некоторых кадров элементарно нет), рендеры тестовые, нет никакой практически оптимизации, но свою цель тест выполнил на все 100%. Если будет возможность/разрешение вышестоящих органов - выложу что в итоге получилось)) |
| Часовой пояс GMT +4, время: 12:03. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.