Python Pygame不是';t移动我的矩形,我可以';我不明白为什么?

Python Pygame不是';t移动我的矩形,我可以';我不明白为什么?,python,python-3.x,pygame,rect,Python,Python 3.x,Pygame,Rect,我不知道为什么,但我的角色在显示器上,但它不能移动它是在一个精灵组,它是更新的所有时间 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 = sel

我不知道为什么,但我的角色在显示器上,但它不能移动它是在一个精灵组,它是更新的所有时间

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
职业玩家(pygame.sprite.sprite):
定义初始化(自):
pygame.sprite.sprite.\uuuuu init\uuuuuuu(自我)
self.image=pygame.Surface((30,30))
self.image.fill(红色)
self.rect=self.image.get_rect()
自校正y=高度/2
自校正x=宽度-50
self.speeded=0
def更新(自我):
self.speeded=0
keystate=pygame.key.get_pressed()
如果keystate[pygame.K_UP]:
self.speeded=8
如果键状态[pygame.K_DOWN]:
self.speedy=-8
如果self.rect.bottom>=高度:
self.rect.top=0

如果self.rect.top您必须通过“speedy”连续更改“update”方法中“.rect”属性的位置:

self.rect.y+=self
确保在每一帧中调用,并在评估速度后更改位置:

职业玩家(pygame.sprite.sprite):
# [...]
def更新(自我):
self.speeded=0
keystate=pygame.key.get_pressed()
如果keystate[pygame.K_UP]:
self.speeded=8
如果键状态[pygame.K_DOWN]:
self.speedy=-8
self.rect.y+=自加速
如果self.rect.bottom>=高度:
self.rect.top=0

如果真的很感谢,请阅读并考虑你发现最有用的。