我在试着创造一个数字垫。
我试着做便签的方法是:
class One:
def __init__(self,c,msg):
self.screen = c.calculator
self.screen_rect = self.screen.get_rect()
self.settings = c.settings
self.width,self.height = 60,60
self.button_color = (230,230,230)
self.text_color = (100,100,100)
self.rect = pygame.Rect(30,600,self.width,self.height)
self.font = pygame.font.SysFont('Comic Sans MS',20,bold=pygame.font.Font.bold)
self._prep_msg(msg)
def _prep_msg(self,msg):
self.msg_image = self.font.render(msg,True,self.text_color,self.button_color)
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)
self.screen.blit(self.msg)这种方法需要大量的代码,每个类对应9个数字。
我希望能有更好的方法来制作这个便条。
我想制造精灵,但我不知道我将如何改变文本:
self.One = One(self,"1")如果有什么事情你不明白,请问。
谢谢你的帮助!
发布于 2021-10-02 18:15:13
阅读关于类的文章。您可以多次实例化一个类。例如:
创建一个Button。按钮的位置是构造函数的参数:
class Button:
def __init__(self, c, msg, x, y): # <--- x, y
self.screen = c.calculator
self.screen_rect = self.screen.get_rect()
self.settings = c.settings
self.width,self.height = 60,60
self.button_color = (230,230,230)
self.text_color = (100,100,100)
self.rect = pygame.Rect(x, y, self.width, self.height) # <--- x, y
self.font = pygame.font.SysFont('Comic Sans MS',20,bold=pygame.font.Font.bold)
self._prep_msg(msg)
def _prep_msg(self,msg):
self.msg_image = self.font.render(msg,True,self.text_color,self.button_color)
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)
self.screen.blit(self.msg)创建类实例对象的多个Button
self.button_one = Button(self, "1", 30, 600)
self.button_two = Button(self, "2", 100, 600)https://stackoverflow.com/questions/69419026
复制相似问题