Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Урок по AndEngine No4: Спрайты



Урок по AndEngine №4: Спрайты
2013-06-11 01:08 rem1x

Спрайты (Sprites)

Если вы новичок в разработках 2D игр, вы наверное не совсем ясно понимаете, что такое спрайт. Давайте дадим короткое определение спрайта.

Спрайт это 2D Bitmap (растровое изображение), которая позиционируется в сцене с помощью [X,Y] координат

В AndEngine, спрайты это подкласс (расширение) Объектов (Entity). Существуют и подклассы (расширения) спрайтов — TiledSprite и AnimationSprite, которые позволяют использовать Tiled текстуры или анимировать спрайты.

logo Урок по AndEngine №4: Спрайты

1. Создание спрайтов.

Есть различные способы создания и инициализации спрайтов, вот один из наиболее удобных и коротких способов:

Sprite yourSprite = new Sprite(x, y, textureRegion, vertexBufferObjectManager);

 

  • Первый и второй параметр — x и y, координаты создания спрайта
  • Третий параметр — ITextureRegion для спрайта. (Прямоугольник, который указывает какую текстуру использовать)
  • Четвертый параметр — vertexBufferObjectManager (Без понятия пока что это значит, добавлю описание попозже)

 

2. Привязка спрайтов (Attaching)

Вы можете привязывать спрайты к различным объектам. Например спрайт привязать к спрайту, или спрайт привязать к какой нибудь конкретной сцене. Для этого, вам нужно вызвать метод attachChild.

anyEntity.attachChild(yourSprite);

3. Другое

Отсоединить объект (Detach):

yourEntity.detachSelf();

Регулировка видимости:

yourSprite.setVisible(boolean);

Вращение:

yourSprite.setRotation(float);

Безопасное удаление спрайта:

yourEntity.detachSelf();
yourEntity.dispose();

Tiled спрайт:

Чтобы лучше понять что такое ТайледСпрайт, приведем пример с обычной кнопкой. Обычно, кнопка имеет несколько текстур — текстура нажатой кнопки, наведенной, зажатой, отпущенной и др. В зависимости от состояния кнопки, показывается та или иная текстура. Чтобы не использовать несколько отдельных текстур, можно регулировать индекс Tiled, и тем самым выбирать,  какую текстуру нужно показывать в данный момент.

yourTiledSprite.setCurrentTileIndex(index);

Анимированный спрайт:

Это подкласс (расширение) TiledSprite, обладающий дополнительными методами и функциями. Например, возможность анимации спрайта. Создать AnimatedSprite действительно очень легко, используя TiledTextureRegion

private void createTiledSprite()
{
        AnimatedSprite as = new AnimatedSprite(0, 0, tiledTextureRegion, vbo);
        long[] frameDurration = {100, 100, 100};
        as.animate(frameDurration);
        scene.attachChild(as);
}

Создаем AnimatedSprite с именем as, указываем координаты, текстуры. Далее создаем массив frameDuration, с тремя значениями 100, т.к. подразумевается что якобы в примере TiledTexture обладает тремя тайлами, текстурами. Вызываем у нашего спрайта с именем as метод animate() и указываем frameDuration.

 

Проявляйте вашу любовь, подписывайтесь на RSS, буду рад вашим подпискам! :]



В избранное