这是我到目前为止所拥有的,我已经绘制了矩形来跟踪它,这是代码:
class Personagem(pygame.sprite.Sprite):
def __init__(self,x,y):
super().__init__()
self.imagem = pygame.image.load('sprites/frente-parado.bmp')
self.rect = self.imagem.get_rect()
self.rect.height = 20
self.rect.width = 20
self.rect.centerx = x
self.rect.centery = y
self.velocidade_x = 0
self.velocidade_y = 0
我一直在这里查看类似的问题,我尝试创建另一个从原始左下角开始的矩形,但后来我无法碰撞它,因为精灵最终有两个矩形
感谢任何回答,抱歉英语不好
要使精灵的矩形在图像中居中,您可以使用矩形的 center 属性代替 centerx 和 centery。这是以 rect 为中心的代码的更新版本:
class Personagem(pygame.sprite.Sprite):
def __init__(self, x, y):
super().__init__()
self.imagem = pygame.image.load('sprites/frente-parado.bmp')
self.rect = self.imagem.get_rect()
self.rect.width = 20
self.rect.height = 20
self.rect.center = (x, y)
self.velocidade_x = 0
self.velocidade_y = 0
在此版本中,矩形的中心属性设置为元组 (x, y),这将使矩形在图像中居中。请注意,我还调换了宽度和高度属性的顺序,因为建议在使用 pygame 时将宽度设置在高度之前。