Рефакторинг check_events()

We use cookies. Read the Privacy and Cookie Policy

В ходе разработки функция check_events() будет становиться все длиннее, поэтому мы выделим из check_events() еще две функции: для обработки событий KEYDOWN и для обработки событий KEYUP:

game_functions.py

def check_keydown_events(event, ship):

. ."""Реагирует на нажатие клавиш."""

if event.key == pygame.K_RIGHT:

ship.moving_right = True

elif event.key == pygame.K_LEFT:

ship.moving_left = True

def check_keyup_events(event, ship):

. ."""Реагирует на отпускание клавиш."""

if event.key == pygame.K_RIGHT:

ship.moving_right = False

elif event.key == pygame.K_LEFT:

ship.moving_left = False

def check_events(ship):

"""Обрабатывает нажатия клавиш и события мыши."""

for event in pygame.event.get():

if event.type == pygame.QUIT:

sys.exit()

elif event.type == pygame.KEYDOWN:

. . . . . .check_keydown_events(event, ship)

elif event.type == pygame.KEYUP:

. . . . . .check_keyup_events(event, ship)

В программе появились две новые функции: check_keydown_events() и check_keyup_events(). Каждая функция получает параметр event и параметр ship. Тела двух функций скопированы из check_events(), а старый код заменен вызовами новых функций. Новая структура кода упрощает функцию check_events() и облегчает последующее программирование реакции на действия игрока.