Обработка нажатия клавиши
Каждый раз, когда пользователь нажимает клавишу, это нажатие регистрируется в Pygame как событие. Каждое событие идентифицируется методом pygame.event.get(), поэтому в функции check_events() необходимо указать, какие события должны отслеживаться. Каждое нажатие клавиши регистрируется как событие KEYDOWN.
При обнаружении события KEYDOWN необходимо проверить, была ли нажата клавиша, инициирующая некоторое игровое событие. Например, при нажатии клавиши
game_functions.py
def check_events(ship):
"""Обрабатывает нажатия клавиш и события мыши."""
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
(1) . . . .elif event.type == pygame.KEYDOWN:
(2) . . . . . .if event.key == pygame.K_RIGHT:
. . . . . . . .# Переместить корабль вправо.
(3) . . . . . . . .ship.rect.centerx += 1
Функции check_events() передается параметр ship, потому что корабль должен двигаться вправо при нажатии клавиши
Вызов check_events() в alien_invasion.py необходимо изменить, чтобы в аргументе передавался объект ship:
alien_invasion.py
# Запуск основного цикла игры.
while True:
. . . .gf.check_events(ship)
gf.update_screen(ai_settings, screen, ship)
Если запустить программу alien_invasion.py сейчас, вы увидите, что корабль перемещается вправо на 1 пиксел при каждом нажатии клавиши