如何在pygame中使用类将文本blit到屏幕上?

2024-10-01 19:26:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在屏幕上快速显示文本,但只使用类。当我从一个类创建一个实例时,有没有方法在类中引用同一个实例?例如,在我的代码中:

class _text_():
    def __init__(self, font, size, text, antialias, colour, background):
        self.font = font
        self.size = size
        self.text = text
        self.antialias = antialias
        self.colour = colour
        self.background = background 
    def _textsettings_(self):
        texts = pygame.font.SysFont(self.font, self.size)
        return texts.render(self.text, self.antialias, self.colour, self.background)
    def _textblit_(self):
        return win.blit[text1, (400, 240)]

text1 = _text_('calibri', 20, "press any button to start", True, black, None)             

在textblit函数中,我试图使用变量“text1”,以便将其blit到屏幕上,但显然这不起作用,我很难理解如何做

任何建议,谢谢


Tags: 实例textselfsizereturn屏幕defbackground
1条回答
网友
1楼 · 发布于 2024-10-01 19:26:45

文本表面将成为类(self.text)的实例属性:

class _text_():
    def __init__(self, font, size, text, antialias, colour, background):
        self.font = font
        self.size = size
        self.text = text
        self.antialias = antialias
        self.colour = colour
        self.background = background 
        texts = pygame.font.SysFont(self.font, self.size)
        self.text = texts.render(self.text, self.antialias, self.colour, self.background)
    def _textblit_(self):
        win.blit(self.text, (400, 240))

在主应用程序循环中调用_textblit_

text1 = _text_('calibri', 20, "press any button to start", True, black, None)  

while True:

    # [...]

    text1._textblit_()

    # [...]

相关问题 更多 >

    热门问题