Найти в Дзене

Пишем игру Flappy Bird на Python. Изменение угла полета. Часть 8.

Дополнительная визуализация полета
Дополнительная визуализация полета

Сегодня мы улучшим визуальное восприятие игры добавив наклон птички во время полета. Для этого добавим в класс Bird несколько новых свойств:

  • self.angle - Текущее значение угла наклона.
  • self.angle_speed - Скорость изменения угла наклона.
  • self.rising - Определение взлета или падения. True - взлет, False - падение.

*На одном из следующих уроков для лучшего понимания происходящего мы изучим тригонометрические функции определяющие положение двумерного объекта в пространстве. Ну а если вам не терпится побыстрее познакомиться с физикой перемещения объектов на двумерных плоскостях, то на наших курсах в школе программирования для детей КИД КОД мы изучаем данный вопрос более досконально. С промо кодом "дзен" вы получите 25% скидку на первый месяц обучения.

Новые свойства для класса Bird
Новые свойства для класса Bird

Далее переходим в метод update класса Bird и добавляем следующие операции:

  • if self.velocity > 0 - Если скорость падения птички будет больше нуля это означает, что птичка начала падать...
  • self.rising = False - Поэтому мы изменяем свойство определяющее взлет или падение.
  • if self.rising and self.angle < 25 - Если птичка взлетает и угол наклона меньше 25 (попробуйте поменять это значение и посмотрите насколько вы сможете задрать нос при взлете).
  • self.angle += self.angle_speed - Увеличиваем угол наклона птички на скорость наклона.
  • elif not self.rising and self.angle > -15 - Как и в случае взлета при падении мы ограничиваем максимальный градус наклона.
  • self.angle -= self.angle_speed * 0.5 - Также скорость изменения угла падения будет в два раза меньше чем скорость изменения угла взлета.
Изменение свойств для взлета и падения
Изменение свойств для взлета и падения

Теперь перейдем к методу вызова нажатия на клавишу пробел и добавим изменения свойства взлета.

  • self.rising = True - Устанавливаем режим взлета для птички при нажатии на пробел
Взлетаем!
Взлетаем!

Проверяем результат... И тут нас будет ждать разочарование так как птичка визуально не наклоняется под нужным нам углом. Для того, чтобы это исправить нам необходимо применить новые свойства к изображению.

А как же взлет?
А как же взлет?

В методе draw класса Bird закомментируйте прошлый способ отображения изображения в игре и добавьте новый объект - rotated_image и вызов метода .blit для изменения наклона изображения.

Новый способ отображения
Новый способ отображения

Теперь птичка точно должна взлететь!

Падаю...
Падаю...

На следующем занятии мы добавим способ подсчитать количество набранных очков в игре.

Продолжение на следующем уроке