Как я могу анимировать последовательность картинок на Java? - PullRequest
1 голос
/ 06 апреля 2011

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

Кроме того, как мне сделать так, чтобы, когда персонаж уходит за экран, вид меняется для отображения нового вида. Например, я прошел один столбец за экраном, и он отображает новый столбец, а первый столбец на экране теперь за кадром?

1 Ответ

4 голосов
/ 06 апреля 2011

Я бы следовал этому руководству: http://www.tonypa.pri.ee/tbw/start.html

Это не для Java, но вы можете адаптировать код и концепции к вашим потребностям.Важны алгоритмы.

Для анимации персонажей я бы создал класс Sprite, в котором хранится набор изображений.Когда дело доходит до рисования, вы просто вызываете метод paint (..) и передаете объект Graphics2D.Здесь обновите текущее изображение в методе paint (..) в зависимости от времени, прошедшего с момента последнего вызова (используйте System.currentTimeMillis()), а затем нарисуйте его с помощью объекта Graphics2D.Если вы особенно сообразительны, вы можете сделать алгоритм, чтобы определить, в каком кадре находится спрайт, без сохранения какой-либо информации о состоянии (используя модуль и заданный общий знаменатель времени, скажем, 2 мс - убедившись, что время кадра кратно 2 мс).

Если вы ищете библиотеку для разработки игр, недавно вышла довольно хорошая библиотека - Shaven Puppy Game Library (spgl), в которой используется LWJGL (облегченная Java-игра).Библиотека - использует SDL / OpenGL, созданную создателями Revenge of the Titans, успешной 2D-игры, написанной на Java с использованием аппаратного ускорения.Он имеет огромный спрайт-фрейм .Наверное, самый большой, который я когда-либо видел.Вы можете определить спрайты в текстовом файле вместе со звуками, которые издает спрайт.Другой - Слик .Простыми являются GTGE и JGame .

...