Android - лучший способ получить плавную анимацию спрайтов, не теряя кучи - PullRequest
2 голосов
/ 21 февраля 2012

Я Java-программист, работаю сейчас над приложением для Android. Это будет экшн-игра, поэтому мне нужно использовать много спрайтов. Моя анимация работает отлично, но я борюсь с управлением памятью против производительности. Я много читаю онлайн, и, кажется, ничто не отвечает на мою проблему. Я хочу, чтобы мои спрайты работали плавно, но не хочу тратить слишком много кучи . Вот что я попробовал до сих пор:

- загрузка одного большого файла со всеми анимациями (ходьбы, бега, прыжка и т. Д.) В кучу: очень быстро переключаться с одной анимации на другую и от кадра к кадру, но большая проблема заключается в размер кучи используется. Мы должны загрузить весь файл изображения в кучу, в виде растрового изображения, что неэффективно вообще (один файл может легко достигать 10 МБ). Нам явно не нужно загружать все изображение в оперативную память, если мы рисуем только один маленький кадр на экране?

- наличие отдельных файлов для каждой анимации (один для ходьбы, один для бега и т. Д.) И загрузка по одному файлу за раз, когда это необходимо: он относительно эффективен по размеру, поэтому мы не тратим пространство кучи. Он также очень гибок в загрузке данной анимации, поскольку вся анимация загружается в кучу. Большая проблема заключается в переходе от одной анимации к другой (например, от бега к прыжку). Существует большая задержка, так как нам необходимо декодировать (bitmapfactory.decoderesources) новый файл каждый раз, когда нам нужно изменить анимацию. даже если это всего 500 мс, это слишком медленно для игры.

Вопрос: Какой наилучший способ получить плавную анимацию без загрузки огромных файлов в кучу?

Спасибо

...