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
如果真的很感谢,请阅读并考虑你发现最有用的。