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



Pdf көрінісі
бет220/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   216   217   218   219   220   221   222   223   ...   334
Байланысты:
Изучаем Python

299
alien_invasion.py
def _check_play_button(self, mouse_pos):
"""Запускает новую игру при нажатии кнопки Play."""
button_clicked = self.play_button.rect.collidepoint(mouse_pos)
if button_clicked and not self.stats.game_active:
...
# Указатель мыши скрывается.
pygame.mouse.set_visible(False)
Вызов 
set_visible()
со значением 
False
приказывает Pygame скрыть указатель, 
когда он находится над окном игры.
После завершения игры указатель должен появляться снова, чтобы игрок мог на-
жать кнопку 
Play
для запуска новой игры. Эту задачу решает следующий код:
alien_invasion.py
def _ship_hit(self):
"""Обрабатывает столкновение корабля с пришельцем."""
if self.stats.ships_left > 0:
...
else:
self.stats.game_active = False
pygame.mouse.set_visible(True)
Указатель снова появляется сразу же после того, как игра становится неактивной, 
что происходит в 
_ship_hit()
. Внимание к подобным деталям сделает вашу игру 
более профессиональной, а игрок сможет сосредоточиться на игре вместо того, 
чтобы разбираться в сложностях пользовательского интерфейса.
УПРАЖНЕНИЯ
14.1. Запуск игры клавишей P:
так как в Alien Invasion игрок управляет кораблем с кла-
виатуры, для запуска игры также лучше использовать клавиатуру. Добавьте код, с которым 
игрок сможет запустить игру нажатием клавиши 
P
. Возможно, часть кода из 
_check_play_
button()
стоит переместить в функцию 
start_game()
, которая будет вызываться из 
_check_
play_button()
и 
_check_keydown_events()
.
14.2. Стрельба по мишени:
создайте у правого края экрана прямоугольник, который двига-
ется вверх и вниз с постоянной скоростью. У левого края располагается корабль, который 
перемещается вверх и вниз игроком и стреляет по движущейся прямоугольной мишени. 
Добавьте кнопку 
Play
для запуска игры. После трех промахов игра заканчивается, а на экра-
не снова появляется кнопка 
Play
. Нажатие этой кнопки перезапускает игру.
Повышение сложности
В текущей версии после того, как весь флот пришельцев будет уничтожен, игрок 
переходит на новый уровень, но сложность игры остается неизменной. Давайте 
немного оживим игру и усложним ее; для этого скорость игры будет повышаться 
каждый раз, когда игрок уничтожает весь флот.


300

Достарыңызбен бөлісу:
1   ...   216   217   218   219   220   221   222   223   ...   334




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

    Басты бет