我想使用pygame模块在Python3中编写pac-man游戏。然而,我不知道如何保持pac-man在按下单个键后持续移动。目标是按下“向上”键,pac-man将继续朝该方向移动,直到他撞到边界,即使我释放了按键。就目前而言,我没有编写这些边界,因为我优先考虑pac-man的连续移动。我尝试嵌套了一个while循环,但显然出现了运行时错误。你有什么好主意吗?
if keys[pygame.K_UP] and (pac.y - pac.radius) > 0:
pac.y -= pac.speed
pac.direction = "UP"
elif keys[pygame.K_DOWN] and (pac.y + 2*(pac.radius) + pac.speed) < height:
pac.y += pac.speed
pac.direction = "DOWN"
elif keys[pygame.K_LEFT] and (pac.x - pac.radius) > 0:
pac.x -= pac.speed
pac.direction = "LEFT"
left = True
elif keys[pygame.K_RIGHT] and (pac.x + 2*pac.radius + pac.speed) < width:
pac.x += pac.speed
pac.direction = "RIGHT"
right = True
期望的结果是输入一个方向,吃豆人将自动朝这个方向移动,而不需要一直按着方向键。但实际情况是我必须不断按住方向键才能让吃豆人朝着我想要的方向移动。
pac.x += pac.speed
)。您应该在按下键时存储方向信息,并将移动代码放置在定期执行的某个地方(例如使用计时器)。 - zvone