擅长:python、mysql、java
<p>如果要在每次按键时移动一次,应该使用<a href="http://www.pygame.org/docs/ref/event.html#pygame.event.get" rel="nofollow noreferrer">event loop</a>或<a href="http://www.pygame.org/docs/ref/event.html#pygame.event.wait" rel="nofollow noreferrer">^{<cd1>}</a>。当按下向下键时,带有<code>key</code>属性<code>pygame.K_DOWN</code>的单个<code>pygame.KEYDOWN</code>事件将被添加到事件队列中。只需检查这个键是否在事件循环中按下,然后移动精灵。你知道吗</p>
<pre><code>import pygame as pg
pg.init()
screen = pg.display.set_mode((640, 480))
clock = pg.time.Clock()
BG_COLOR = pg.Color('gray12')
pos = pg.Vector2(120, 80)
done = False
while not done:
for event in pg.event.get():
if event.type == pg.QUIT:
done = True
elif event.type == pg.KEYDOWN:
if event.key == pg.K_DOWN:
# This will be executed once per event.
pos.y += 20
elif event.key == pg.K_UP:
pos.y -= 20
screen.fill(BG_COLOR)
pg.draw.rect(screen, (0, 128, 255), (pos, (20, 20)))
pg.display.flip()
clock.tick(60)
pg.quit()
</code></pre>