Я пишу простой учебник Pygame для предстоящей книги, и я как бы заблокирован в этой проблеме здесь. У меня есть два класса: мяч (бола) и весло (raquete). Мяч спрайт приходит из образа и его класс достаточно прост:Pygame - Получение прямоугольника для динамически нарисованного объекта
class bola(pygame.sprite.Sprite):
def __init__(self, x, y, imagem_bola):
pygame.sprite.Sprite.__init__(self)
self.x = x
self.y = y
self.image = pygame.image.load(imagem_bola)
self.rect = self.image.get_rect()
def imprime(self):
cenario.blit(self.image, (self.x, self.y))
ракетки, однако, получает обращаются динамически его высота и ширина передаются в качестве параметров.
class raquete(pygame.sprite.Sprite):
def __init__(self, x, y, l_raquete, a_raquete):
pygame.sprite.Sprite.__init__(self)
self.x = x
self.y = y
self.l_raquete = l_raquete
self.a_raquete = a_raquete
self.image = pygame.draw.rect(cenario, branco, (self.x, self.y, self.l_raquete, self.a_raquete))
self.rect = self.image.get_rect() # this doesn't work!
def imprime(self):
pygame.draw.rect(cenario, branco, (self.x, self.y, self.l_raquete, self.a_raquete))
Как вы можете видеть, моя попытка загрузить self.image
с
pygame.draw.rect(cenario, branco, self.x, self.y, self.l_raquete, self.a_raquete))
, а затем получить rect
с помощью self.rect = self.image.get_rect()
просто не работает.
Конечно, так как я не могу получить rect
для raquete
, столкновения также не работают.
Все советы приветствуются!
Спасибо, Доминик! Поверхность делает трюк. Я все еще задаюсь вопросом, есть ли способ получить выход из объекта, построенного с помощью pygame.draw ... –