<p>我建议使用变量来跟踪哪些箭头键被按下,哪些没有按下。您可以使用<code>KEYDOWN</code>和<code>KEYUP</code>事件来更新变量。然后,您可以根据按下的键调整每个帧的精灵位置。这也意味着您可以通过更改精灵移动每帧的距离,轻松设置精灵在不同方向上的速度。</p>
<p>编辑:</p>
<p>或者正如@monkey建议的那样,您可以使用<a href="http://www.pygame.org/docs/ref/key.html#pygame.key.get_pressed" rel="nofollow noreferrer">key.get_pressed()</a>代替。</p>
<p>下面是一个未经测试的示例:</p>
<pre><code>while True:
DISPLAYSURF.blit(background,(0,0))
DISPLAYSURF.blit(sprite,(spritex,spritey))
for event in pygame.event.get():
if event.type==QUIT:
pygame.quit()
sys.exit()
if event.type == KEYDOWN:
if (event.key == pygame.K_LEFT):
sprite=pygame.image.load('left.png')
elif (event.key == pygame.K_RIGHT):
sprite=pygame.image.load('right.png')
elif (event.key == pygame.K_UP):
sprite=pygame.image.load('up.png')
elif (event.key == pygame.K_DOWN):
sprite=pygame.image.load('down.png')
keys_pressed = pygame.key.get_pressed()
if keys_pressed[pygame.K_LEFT]:
spritex -= 5
if keys_pressed[pygame.K_RIGHT]:
spritex += 5
if keys_pressed[pygame.K_UP]:
spritey -= 5
if keys_pressed[pygame.K_DOWN]:
spritey += 5
pygame.display.update()
fpsClock.tick(FPS)
</code></pre>