Сегодня мы улучшим визуальное восприятие игры добавив наклон птички во время полета. Для этого добавим в класс Bird несколько новых свойств:
- self.angle - Текущее значение угла наклона.
- self.angle_speed - Скорость изменения угла наклона.
- self.rising - Определение взлета или падения. True - взлет, False - падение.
*На одном из следующих уроков для лучшего понимания происходящего мы изучим тригонометрические функции определяющие положение двумерного объекта в пространстве. Ну а если вам не терпится побыстрее познакомиться с физикой перемещения объектов на двумерных плоскостях, то на наших курсах в школе программирования для детей КИД КОД мы изучаем данный вопрос более досконально. С промо кодом "дзен" вы получите 25% скидку на первый месяц обучения.
Далее переходим в метод 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 для изменения наклона изображения.
Теперь птичка точно должна взлететь!
На следующем занятии мы добавим способ подсчитать количество набранных очков в игре.