出于某种原因,当我按箭头键时,我的Player
精灵没有移动。
它之前正在移动,但现在它根本没有移动,我没有看到任何问题
使用我正在使用的代码(另外,没有引发异常)。这是相关的代码
(告诉我是否需要添加更多):
def move(self,up,down,right,left): #move function in Player class
if up and self.rect.y>0:
print'up'
self.rect.y-=self.speed
if down and self.rect.y<650:
print'down'
self.rect.y+=self.speed
if right and self.rect.x<650:
print'right'
self.rect.x+=self.speed
if left and self.rect.x>0:
print'left'
self.rect.x-=self.speed
...
#in while loop, under "for event in pygame.event.get():"
elif event.type == 2: #pygame.KEYDOWN
if event.key in range(273,277): #if the key is an arrow key
if event.key==273: #up
up=True
elif event.key==274: #down
down=True
elif event.key==275: #left
right=True
else: #right
left=True
我在Windows 10,python 2.7。
答案 0 :(得分:0)
让我们看看嵌入在while循环中的for循环中的代码块
while循环是无限的,或者更确切地说,当你不想要它时它会停止吗?
另外,你是否在if语句之后直接调用move
函数,在你这样做之后,你是否重置方向的变量?
像这样:
#in while loop, under "for event in pygame.event.get():"
elif event.type == 2: #pygame.KEYDOWN
if event.key in range(273,277): #if the key is an arrow key
if event.key==273: #up
up=True
elif event.key==274: #down
down=True
elif event.key==275: #left
right=True
else: #right
left=True
move(up,down,left,right)
up,down,right,left=False,False,False,False
希望这可以帮助您找出错误。