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



Pdf көрінісі
бет193/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   189   190   191   192   193   194   195   196   ...   334
Байланысты:
Изучаем Python

settings.py
# Параметры снаряда
...
self.bullet_color = (60, 60, 60)
self.bullets_allowed = 3


266
Глава 12 • Инопланетное вторжение
В любой момент времени на экране может находиться не более трех снарядов. Эта 
настройка будет использоваться в 
AlienInvasion
для проверки количества суще-
ствующих снарядов перед созданием нового снаряда в 
_fire_bullet()
:
alien_invasion.py
def _fire_bullet(self):
"""Создание нового снаряда и включение его в группу bullets."""
if len(self.bullets) < self.settings.bullets_allowed:
new_bullet = Bullet(self)
self.bullets.add(new_bullet).
При нажатии клавиши «пробел» программа проверяет длину 
bullets
. Если значе-
ние 
len(self.bullets)
меньше трех, создается новый снаряд. Но если на экране уже 
находятся три активных снаряда, при нажатии пробела ничего не происходит. Если 
вы запустите игру сейчас, вы сможете выпускать снаряды только группами по три.
Создание метода _update_bullets()
Мы хотим, чтобы класс 
AlienInvasion
был как можно более простым, поэтому по-
сле написания и проверки кода управления снарядами этот код можно переместить 
в отдельный метод. Мы создадим новый метод 
_update_bullets()
и добавим его 
непосредственно перед 
_update_screen()
:
alien_invasion.py
def _update_bullets(self):
"""Обновляет позиции снарядов и уничтожает старые снаряды."""
# Обновление позиций снарядов.
self.bullets.update()
# Удаление снарядов, вышедших за край экрана.
for bullet in self.bullets.copy():
if bullet.rect.bottom <= 0:
self.bullets.remove(bullet)
Код 
_update_bullets()
вырезается и вставляется из 
run_game()
; мы всего лишь 
немного уточнили комментарии.
Цикл 
while
в 
run_game()
снова выглядит просто:


Достарыңызбен бөлісу:
1   ...   189   190   191   192   193   194   195   196   ...   334




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

    Басты бет