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



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

14.4. Уровни сложности:
создайте в Alien Invasion набор кнопок для выбора начальной 
сложности игры. Каждая кнопка должна присваивать атрибутам 
Settings
значения, необхо-
димые для создания различных уровней сложности.
Подсчет очков
Система подсчета очков позволит отслеживать счет игры в реальном времени; так-
же на экране будет выводиться текущий рекорд, уровень и количество оставшихся 
кораблей.
Счет игры также относится к игровой статистике, поэтому мы добавим атрибут 
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
:


Подсчет очков
303
scoreboard.py
import pygame.font
class Scoreboard():
"""Класс для вывода игровой информации."""

def __init__(self, ai_game):
"""Инициализирует атрибуты подсчета очков."""
self.screen = ai_game.screen
self.screen_rect = self.screen.get_rect()
self.settings = ai_game.settings
self.stats = ai_game.stats
# Настройки шрифта для вывода счета.

self.text_color = (30, 30, 30)

self.font = pygame.font.SysFont(None, 48)
# Подготовка исходного изображения.

self.prep_score()
Так как 
Scoreboard
выводит текст на экран, код начинается с импортирования 
модуля 
pygame.font
. Затем 
__init__()
передается параметр 
ai_game
для обраще-
ния к объектам 
settings

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

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

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

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

, который определяется следующим образом:


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




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

    Басты бет