Я бы следовал этому руководству: 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 .