Skip to content

Latest commit

 

History

History

09

Пример 09: покадровая анимация персонажа с помощью атласа текстур

Создаётся окно, в котором находится крошечный персонаж. Персонаж управляется вклавишами-стрелками Влево, Вправо, Вверх. Под управлением пользователя персонаж может стоять, идти либо прыгать.

Скриншот

Реализация состояний

Класс AnimatedSprite похож на sf::Sprite, но имеет два ключевых отличия:

  • поддерживает загрузку из атласа текстур
  • позволяет переключать кадры из загруженного атласа, чтобы выполнять анимацию

Класс HeroPuppeteer (рус. кукловод) управляет куклой героя - объектом класса AnimatedSprite. Кукловод хранит состояние персонажа, реагирует на команды с клавиатуры и управляет запуском/остановкой анимации движения и прыжка. Кукловод может хранить одно из трёх состояний: Idle, Walking, Jumping.

Диаграмма

Анимация

Спрайты персонажа взяты с ресурса opengameart.org. Все кадры покадровой анимации были сложены в одном изображение (этот подход называется "текстурный атлас").

Для создания спрайта использован упаковщик текстур CheetahTexturePacker2. Загрузить версию для Windows можно здесь: github.com/ps-group/Cheetah-Texture-Packer-2/releases