我正在为即将出版的一本书写一个简单的 Pygame 教程,我在这个问题上有点受阻。我有两个课程,一个球(bola)和一个桨(raquete)。球精灵来自一个图像,它的类非常简单:
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
for raquete
,因此碰撞也不起作用。
欢迎所有提示!