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



Pdf көрінісі
бет186/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   182   183   184   185   186   187   188   189   ...   334
Байланысты:
Изучаем Python

alien_invasion.py
def _check_events(self):
"""Реагирует на нажатие клавиш и события мыши."""
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
self._check_keydown_events(event)
elif event.type == pygame.KEYUP:
self._check_keyup_events(event)
def _check_keydown_events(self, event):
"""Реагирует на нажатие клавиш."""
if event.key == pygame.K_RIGHT:
self.ship.moving_right = True
elif event.key == pygame.K_LEFT:
self.ship.moving_left = True
def _check_keyup_events(self, event):
"""Реагирует на отпускание клавиш."""
if event.key == pygame.K_RIGHT:
self.ship.moving_right = False
elif event.key == pygame.K_LEFT:
self.ship.moving_left = False
В программе появились два вспомогательных метода: 
_check_keydown_events()
и 
_check_keyup_events()
. Каждый метод получает параметр 
self
и параметр 
event
. Тела двух методов скопированы из 
_check_events()
, а старый код заменен 
вызовами новых методов. Новая структура кода упрощает метод 
_check_events()
и облегчает последующее программирование реакции на действия игрока.


258
Глава 12 • Инопланетное вторжение
Нажатие клавиши Q для завершения
Итак, теперь программа реагирует на нажатия клавиш, и мы можем добавить еще 
один способ завершения игры. Было бы утомительно щелкать на кнопке 
X
в верхней 
части игрового окна каждый раз, когда в игру добавляется новая функциональ-
ность, поэтому мы добавим специальную клавишу для завершения игры при на-
жатии клавиши 
Q
:
alien_invasion.py
def _check_keydown_events(self, event):
...
elif event.key == pygame.K_LEFT:
self.ship.moving_left = True
elif event.key == pygame.K_q:
sys.exit()
В код 
_check_keydown_events()
добавляется новый блок. Теперь в процессе тести-
рования можно закрыть игру нажатием клавиши 
Q
, вместо того чтобы пользоваться 
кнопкой закрытия окна.
Запуск игры в полноэкранном режиме
В Pygame поддерживается полноэкранный режим, который, возможно, понравится 
вам больше запуска в обычном окне. Некоторые игры лучше смотрятся в полно-
экранном режиме, а у пользователей macOS в полноэкранном режиме может 
улучшиться быстродействие.
Чтобы запустить игру в полноэкранном режиме, внесите следующие изменения 
в 
__init__()
:


Достарыңызбен бөлісу:
1   ...   182   183   184   185   186   187   188   189   ...   334




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

    Басты бет