На моем предприятии по быстрому рендерингу во Flash я решил, что единственным решением является создание спрайтов на лету.
Листы спрайтов создаются из мувиклипа с использованием BitmapData.draw()
.
У меня есть класс графического менеджера, у которого есть метод, который принимает MovieClip и int.MovieClip - это цель для захвата графики, а int представляет, на сколько разных углов может быть визуализировано изображение в пределах 360 градусов.
Например, если значение int равно 4
, я получуэтот результат:
И если я предоставлю 8
Я получу это:
И так далее (до 360).
Затем метод возвращает экземпляр другого класса, который я создал, что позволит легко захватывать BitmapData данной ячейки путем указания кадра и поворота, например:
var myGraphics:SpriteSheet = aboveMethod(movieClip, 4);
var cell:BitmapData = myGraphics.getCell(2, 90); // frame 2 rotated to 90 degrees
Создание этих спрайт-листов, очевидно, потребует много оперативной памяти, особенно если у меня есть что-то со 100+ кадрами, которые нужно повернуть на 2 градуса (всего 1800 ячеек).
IЯ понятия не имею, сколько ОЗУ они используют, и я опять не знаю, сколько ОЗУ удовлетворительно для моей игры.
Любой совет по этому поводу был бы чрезвычайно полезен.Примечание: я позаботился о том, чтобы использовать BitmapData.dispose()
в моем собственном методе dispose()
, определенном SpriteSheet, для очистки ОЗУ, меня больше беспокоит, сколько ОЗУ я могу использовать за один раз (все игрыактивы, которые будут готовы к использованию).