[英]pygame I can move my character but not greatly
我目前正在使用pygame制作游戏,但是当我改变方向时,我停下了,不得不再次按下箭头键。 看来这不是一个大问题,但是很容易让人烦恼。
这是代码(它是写在游戏循环中的,所以这不是问题):
if event.type == pygame.KEYDOWN:
if event.key == K_LEFT:
coordsX = coordsX - 0.1
elif event.key == K_RIGHT:
coordsX = coordsX + 0.1
elif event.key == K_UP:
coordsY = coordsY - 0.1
elif event.key == K_DOWN:
coordsY = coordsY + 0.1
elif event.key == K_LEFT and event.key == K_UP:
coordsX = coordsX - 0.1
coordsY = coordsY - 0.1
elif event.key == K_LEFT and event.key == K_DOWN:
coordsX = coordsX - 0.1
coordsY = coordsY + 0.1
elif event.key == K_RIGHT and event.key == K_UP:
coordsX = coordsX + 0.1
coordsY = coordsY - 0.1
elif event.key == K_RIGHT and event.key == K_DOWN:
coordsX = coordsX + 0.1
coordsY = coordsY + 0.1
我在上面的评论中所指的示例:
if event.type == pygame.KEYDOWN:
if event.key == K_LEFT:
moving_left = True
elif event.key == K_RIGHT:
moving_right = True
elif ....
elif event.type == pygame.KEYUP:
if event.key == K_LEFT:
moving_left = False
elif event.key == K_RIGHT:
moving_right = False
elif ....
if moving_left:
coordsX = coordsX - 0.1
if moving_right:
coordsX = coordsX + 0.1
if ...
对于这种情况,您可能并不关心何时按下按键或按键的顺序,但是您确实想知道按下了哪些按键。 因此,您可能需要查看pygame.key.get_pressed 。
然后,主循环看起来像这样
pygame.event.pump()
keys = pygame.key.get_pressed()
if keys[K_LEFT]:
coordsX -= 0.1
if keys[K_RIGHT]:
coordsX += 0.1
...
另外,在这里跳过使用elif,条件会自行解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.