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



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

scoreboard.py
def prep_score(self):
"""Преобразует текущий счет в графическое изображение."""

score_str = str(self.stats.score)

self.score_image = self.font.render(score_str, True,
self.text_color, self.settings.bg_color)
# Вывод счета в правой верхней части экрана.

self.score_rect = self.score_image.get_rect()

self.score_rect.right = self.screen_rect.right - 20

self.score_rect.top = 20
В методе 
prep_score()
числовое значение 
stats.score
преобразуется в строку 


эта строка передается методу 
render()
, создающему изображение 

. Чтобы счет 
был хорошо виден на экране
render()
передается цвет фона и цвет текста.
Счет размещается в правой верхней части экрана и расширяется влево с ростом 
значения и ширины числа. Чтобы счет всегда оставался выровненным по правой 
стороне, мы создаем прямоугольник 
rect
с именем 
score_rect

и смещаем его 
правую сторону на 20 пикселов от правого края экрана 

. Затем верхняя сторона 
прямоугольника смещается на 20 пикселов вниз от верхнего края экрана 

.


304
Глава 14 • Ведение счета
Остается создать метод 
show_score()
для вывода построенного графического изо-
бражения:
scoreboard.py
def show_score(self):
"""Выводит счет на экран."""
self.screen.blit(self.score_image, self.score_rect)
Метод выводит счет на экран в позиции, определяемой 
score_rect
.
Создание экземпляра Scoreboard
Чтобы вывести счет, мы создадим в 
AlienInvasion
экземпляр 
Scoreboard
. Начнем 
с обновления команд импортирования:
alien_invasion.py
...
from game_stats import GameStats
from scoreboard import Scoreboard
...
Затем создадим экземпляр 
Scoreboard
в 
__init__()
:


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




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

    Басты бет