擅长:python、mysql、java
<p>你的问题是:</p>
<pre><code>if event.type == pygame.KEYUP:
if event.key == pygame.K_RIGHT:
player.hspd = 0
if event.key == pygame.K_LEFT:
player.hspd = 0
if event.key == pygame.K_UP:
player.vspd = 0
if event.key == pygame.K_DOWN:
player.vspd = 0
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
player.hspd = 4
if event.key == pygame.K_LEFT:
player.hspd = -4
if event.key == pygame.K_UP:
player.vspd = -4
if event.key == pygame.K_DOWN:
player.vspd = 4
</code></pre>
<p>我猜,当您立即切换按键时,您的按键事件down仍会被消耗,这意味着只要第一个事件尚未触发其按键向上事件,就不会触发其他按键向下事件。你知道吗</p>
<p>编辑:也许最好检查一下玩家是否在移动,如果是的话,只需要反转速度。那么您只需要检查down事件。
否则您的事件将被消耗,并且无法正确检查。
对于您的方法,您需要存储自上一帧以来发生的键事件并检查该列表。你知道吗</p>