创建得分Score类

This commit is contained in:
18530439 2021-06-15 20:48:25 +08:00
parent e28e03780d
commit a6393792cd
1 changed files with 48 additions and 0 deletions

48
scoreboard.py Normal file
View File

@ -0,0 +1,48 @@
# # 创建得分Score类
import pygame
from pygame.sprite import Group
from ship import Ship
class Scoreboard():
"""显示得分信息的类"""
def __init__(self, ai_settings, screen, game_stats):
"""初始化显示得分涉及的属性"""
self.screen = screen
self.screen_rect = screen.get_rect()
self.ai_settings = ai_settings
self.game_stats = game_stats
# 显示得分信息时使用的字体设置
self.text_color = (30, 30, 30)
self.font = pygame.font.SysFont(None, 48)
self.prep_images()
def prep_images(self):
"""准备包含 最高得分、当前得分、游戏等级、飞船 的图像"""
# 当前得分图像
self.prep_score()
# 最高得分图像
self.prep_high_score()
# 等级图像
self.prep_level()
# 飞船组图像
self.prep_ships()
def prep_score(self):
"""将当前得分转换为一幅渲染的图像"""
round_score = round(self.game_stats.score, -1) # 使得分为10的倍数 -1----10的倍数 -2--100的倍数 -3--1000的倍数
score_str = "score:" + "{:,}".format(round_score)
self.score_image = self.font.render(score_str, True, self.text_color,
self.ai_settings.bg_color)
# 将当前得分放在屏幕右上角
self.score_image_rect = self.score_image.get_rect()
self.score_image_rect.right = self.screen_rect.right - 20
self.score_image_rect.top = 20