zlp/button

34 lines
1.8 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import pygame.font #导入pygame.font模块它让pygame能够将文本渲染到屏幕上
class Button():
def __init__(self, ai_settings, screen, msg):
"""初始化按钮的属性"""
self.screen = screen
self.screen_rect = screen.get_rect() #调用get_rect()方法将表示屏幕的矩形存储在self.screen_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) #调用font模块的SysFont类创建文字对象
# 创建按钮的rect对象并使其居中
self.rect = pygame.Rect(0, 0, self.width, self.height) #调用Rect类创建rect对象
self.rect.center = self.screen_rect.center #让按钮位于屏幕中央
# 按钮的标签只需创建一次
self.prep_msg(msg) #调用prep_msg()方法创建按钮标签
def prep_msg(self, msg):
"""将msg渲染为图形并使其在按钮上居中"""
self.msg_image = self.font.render(msg, True, self.text_color, self.button_color) #调用font.render()方法将存储在msg中的文本转换为图像
self.msg_image_rect = self.msg_image.get_rect()
self.msg_image_rect.center = self.rect.center #让按钮标签位于按钮中央
def draw_button(self):
# 绘制一个用颜色填充的按钮,再绘制文本
self.screen.fill(self.button_color, self.rect) #调用fill()方法填充按钮
self.screen.blit(self.msg_image, self.msg_image_rect) #调用blit()方法将文字对象添加到窗口上