я создаю класс, который должен вернуть мне поверхность квадрата и текста, как показано ниже:Создание новой поверхности с заполненной площади и текстовой строки в Pygame
площади (в настоящее время) показывает цвет пользователя для игры, а текст - имя игрока. Я буду blit
эти поверхности на экране после вычисления позиций из массива подобных поверхностей.
Я могу легко сгенерировать поверхность text
. Я не хочу пропускать поверхность экрана в класс для pygame.draw.rect
; а, наоборот, создать прямоугольник отдельно; слейте прямоугольник и текстовую поверхность, а затем верните эту сгруппированную поверхность. Мое текущее определение класса просто:
from pygame.locals import *
from pygame import font as pyfont, event as pyevent, display as pydisplay
from sys import exit
class Info:
GRAY = (214, 171, 127)
def __init__(self, name, colour):
pyfont.init()
self.name = name
self.colour = colour
self.font = pyfont.Font(None, 36)
def generate(self):
text = self.font.render(self.name, True, self.GRAY)
# The rectangle surface to be drawn here
return text
@jonrsharpe Ничего. Я могу создать прямоугольники, если передать поверхность экрана в качестве параметра в класс, но, как я уже упоминал в вопросе; Я не хочу этого делать. Я хочу оставить все позиционные вычисления позже. Я также рассмотрел функцию ['suburface'] (http://www.pygame.org/docs/ref/surface.html#pygame.Surface.subsurface); но опять же, я должен был бы вычислить свои позиции позиции перед инициализацией класса. – hjpotter92