В прошлых статьях, посвященных программированию игр под Java 2 ME, мы рисовали троллфейс с помощью класса Image, хотя имеет смысл отрисовывать его как спрайт. Спрайт – графический объект, который можно перемещать и анимировать.
В игровом API Java 2 Micro Edition есть специальный класс Sprite, который используется для отрисовки спрайтов. Этот класс поддерживает методы для проверки столкновений (collisions) с другими игровыми объектами – изображениями, спрайтами и TiledLayer. Анимация спрайта происходит почти также, как использование класса TiledLayer, с помощью набора разных картинок в одном изображении.
Для того, чтобы продемонстрировать анимацию спрайта я подготовил два изображения троллфейса 50х50 каждое и поместил их в одно:

Также, как в TiledLayer, в конструкторе нужно указать размеры кадров:
trollFaceSprite = new Sprite(trollFaceImg, 50, 50);
Этот код, добавленный в метод start() после загрузки картинки в объект trollFaceImg, создает спрайт троллфейса с двумя кадрами размером 50 на 50 каждый, и пронумерованные начиная с 0. Чтобы переключать кадры анимации, используют метод nextFrame(). Этот метод устанавливает следующий по счету кадр. Так как у нас всего два кадра, этот метод будет чередовать кадры 0,1,0,1,0,1 и тд. Чтобы установить определенный кадр по индексу, используется функция setFrame(int sequenceNo).
Чтобы посмотреть, как меняются кадры анимации, добавьте в метод updateGameScreen() строчку:
trollFaceSprite.nextFrame();
В спрайте есть такое понятие как Reference Pixel. Оно означает что-то вроде центра спрайта. Когда мы будем вращать спрайт, он будет вращаться вокруг Reference Pixel. Для каждого спрайта можно назначить свою координату этого пиксела с помощью метода defineReferencePixel(int x, int y). По умолчанию его положение оказывается в левом верхнем углу спрайта.
Метод setRefPixelPosition(int x, int y); перемещает спрайт так, чтобы Reference Pixel оказался в точке (x, y). Чтобы отрисовать спрайт, у него есть метод paint(Graphics g).
В одной из следующей статей читайте, как отслеживать столкновения спрайтов. Чтобы быть в курсе новых статей на нашем сайте, подпишитесь на новости.
