Глава 14 • Ведение счета
Следующий код может использоваться для создания кнопок в любой игре. Ниже
приведена первая часть класса
Button
; сохраните ее в файле
button .py
:
button.py import pygame.font
class Button():
❶
def __init__(self, ai_game, msg):
"""Инициализирует атрибуты кнопки."""
self.screen = ai_game.screen
self.screen_rect = self.screen.get_rect()
# Назначение размеров и свойств кнопок.
❷
self.width, self.height = 200, 50
self.button_color = (0, 255, 0)
self.text_color = (255, 255, 255)
❸
self.font = pygame.font.SysFont(None, 48)
# Построение объекта rect кнопки и выравнивание по центру экрана.
❹
self.rect = pygame.Rect(0, 0, self.width, self.height)
self.rect.center = self.screen_rect.center
# Сообщение кнопки создается только один раз.
❺
self.prep_msg(msg)
Сначала программа импортирует модуль
pygame .font
, который позволяет Pygame
выводить текст на экран. Метод
__init__()
получает параметры
self
, объект
ai_game
и строку
msg
с текстом кнопки
. Размеры кнопки задаются в точке
, по-
сле чего атрибуты
button_color
и
text_color
задаются так, чтобы прямоугольник
кнопки был окрашен в ярко-зеленый цвет, а текст выводился белым цветом.
В точке
происходит подготовка атрибута
font
для вывода текста. Аргумент
None
сообщает Pygame, что для вывода текста должен использоваться шрифт по
умолчанию, а значение
48
определяет размер текста. Чтобы выровнять кнопку по
центру экрана, мы создаем объект
rect
для кнопки
и задаем его атрибут
center
в соответствии с одноименным атрибутом экрана.
Pygame выводит строку текста в виде графического изображения. В точке
эта
задача решается методом
_prep_msg()
.
Код
_prep_msg()
выглядит так: