Как вы перетаскиваете текст на экран с помощью классов в Pygame? - PullRequest
4 голосов
/ 31 января 2020

Я пытаюсь перетащить текст на экран, но использую только классы. Когда я создаю экземпляр из класса, есть ли способ ссылаться на этот же экземпляр внутри класса? Например, в моем коде:

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', чтобы я мог перетащить ее на экран, но, очевидно, это не работает, и я озадачен о том, как это сделать.

Любые предложения приветствуются!

1 Ответ

3 голосов
/ 31 января 2020

Текстовая поверхность становится атрибутом экземпляра класса (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_ в основном приложении l oop:

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

while True:

    # [...]

    text1._textblit_()

    # [...]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...