Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pygame不是';t移动我的矩形,我可以';我不明白为什么?_Python_Python 3.x_Pygame_Rect - Fatal编程技术网

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

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