Pygame没有移动我的矩形,我不知道为什么?



我不知道为什么,但我的角色在显示器中,但它不能移动它在精灵组中,并且它一直在更新

class player(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image  = pygame.Surface( (30 , 30))
self.image.fill (red)
self.rect = self.image.get_rect ()
self.rect.y = height /2
self.rect.x = width-50
self.speedy = 0

def update(self):
self.speedy = 0
keystate = pygame.key.get_pressed()
if keystate[pygame.K_UP]:
self.speedy = 8
if keystate[pygame.K_DOWN]:
self.speedy = -8
if self.rect.bottom >= height:
self.rect.top = 0
if self.rect.top <= 0:
self.rect.bottom = height

您必须不断更改"的位置;。rect";属性中的";"更新";方法通过";"快速":

self.rect.y += self.speedy

确保在每帧中调用pygame.sprite.Group.update,并在评估速度后更改位置:

class player(pygame.sprite.Sprite):
# [...]
def update(self):
self.speedy = 0
keystate = pygame.key.get_pressed()
if keystate[pygame.K_UP]:
self.speedy = 8
if keystate[pygame.K_DOWN]:
self.speedy = -8
self.rect.y += self.speedy
if self.rect.bottom >= height:
self.rect.top = 0
if self.rect.top <= 0:
self.rect.bottom = height

相关内容

最新更新