М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения



Pdf көрінісі
бет202/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   198   199   200   201   202   203   204   205   ...   334
Байланысты:
Изучаем Python


частью класса 
Alien
:
alien.py
def check_edges(self):
"""Возвращает True, если пришелец находится у края экрана."""


280
Глава 13 • Осторожно, пришельцы!
screen_rect = self.screen.get_rect()

if self.rect.right >= screen_rect.right or self.rect.left <= 0:
return True
def update(self):
"""Перемещает пришельца влево или вправо."""

self.x += (self.settings.alien_speed *
self.settings.fleet_direction)
self.rect.x = self.x
Вызов нового метода 
check_edges()
для любого пришельца позволяет проверить, 
достиг ли он левого или правого края. У пришельца, находящегося у правого края, 
атрибут 
right
его атрибута 
rect
больше или равен атрибуту 
right
атрибута 
rect
экра-
на. У пришельца, находящегося у левого края, значение 
left
меньше либо равно 0 

.
В метод 
update()
будут внесены изменения, обеспечивающие перемещение 
влево и вправо; для этого скорость пришельца умножается на значение 
fleet_
direction

. Если значение 
fleet_direction
равно 1, то значение 
alien_speed
прибавляется к текущей позиции пришельца и пришелец перемещается вправо; 
если же значение 
fleet_direction
равно –1, то значение вычитается из позиции 
пришельца (который перемещается влево).
Снижение флота и смена направления
Когда пришелец доходит до края, весь флот должен опуститься вниз и изменить 
направление движения. Это означает, что в 
AlienInvasion
придется внести из-
менения, потому что именно здесь программа проверяет, достиг ли какой-либо 
пришелец левого или правого края. Для этого мы напишем функции 
_check_fleet_
edges()
и 
_change_fleet_direction()
, а затем изменим 
_update_aliens()
. Новые 
методы будут располагаться после 
_create_alien()
, но я еще раз подчеркну, что 
конкретное размещение этих методов в классе несущественно.


Достарыңызбен бөлісу:
1   ...   198   199   200   201   202   203   204   205   ...   334




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет