Книга «Изучаем Python»



Pdf көрінісі
бет176/266
Дата03.03.2023
өлшемі7,86 Mb.
#170986
түріКнига
1   ...   172   173   174   175   176   177   178   179   ...   266
Байланысты:
Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )

УПРАЖНЕНИЯ
14-3 . Учебная стрельба с нарастающей сложностью: начните с кода упражнения 14-2 
(с . 288) . Скорость мишени должна увеличиваться по ходу игры, а при нажатии игроком 
кнопки Play мишень должна возвращаться к исходной скорости .


Подсчет очков
291
Подсчет очков
Система подсчета очков позволит отслеживать счет игры в реальном времени; так-
же на экране будет выводиться текущий рекорд, уровень и количество оставшихся 
кораблей. Счет игры также относится к игровой статистике, поэтому мы добавим 
атрибут 
score
в класс 
GameStats
:
game_stats.py
class GameStats():
...
def reset_stats(self):
"""Инициализирует статистику, изменяющуюся в ходе игры."""
self.ships_left = self.ai_settings.ship_limit
self.score = 0
Чтобы счет сбрасывался при запуске новой игры, мы инициализируем 
score
в 
reset_stats()
вместо 
__init__()
.
Вывод счета
Чтобы вывести счет на экран, мы сначала создаем новый класс 
Scoreboard
. Пока 
этот класс ограничивается выводом текущего счета, но мы используем его для вы-
вода рекордного счета, уровня и количества оставшихся кораблей. Ниже приведена 
первая часть класса; сохраните ее под именем 
scoreboard .py
:
scoreboard.py
import pygame.font
class Scoreboard():
"""Класс для вывода игровой информации."""
 
def __init__(self, ai_settings, screen, stats):
"""Инициализирует атрибуты подсчета очков."""
self.screen = screen
self.screen_rect = screen.get_rect()
self.ai_settings = ai_settings
self.stats = stats
# Настройки шрифта для вывода счета.
 
self.text_color = (30, 30, 30)
 
self.font = pygame.font.SysFont(None, 48)
# Подготовка исходного изображения.
 
self.prep_score()
Так как 
Scoreboard
выводит текст на экран, код начинается с импортирования 
модуля 
pygame.font
. Затем 
__init__()
передаются параметры 
ai_settings

screen
и 
stats
, чтобы класс мог выводить информацию об отслеживаемых показателях 


Далее назначается цвет текста 

и создается экземпляр объекта шрифта 

.
Чтобы преобразовать выводимый текст в изображение, мы вызываем метод 
prep_
score()

, который определяется следующим образом:
scoreboard.py
def prep_score(self):
"""Преобразует текущий счет в графическое изображение."""


292

Достарыңызбен бөлісу:
1   ...   172   173   174   175   176   177   178   179   ...   266




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

    Басты бет