繁体   English   中英

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

[英]Pygame isn't moving my rectangle and I can't figure out why?

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

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

您必须通过“speedy”不断更改“update”方法中“.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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM