我使用pygame库。以下是我为玩家编写的事件处理伪代码:
#generates multiple events for keys that are held down
pygame.key.set_repeat(30,30)
for event in pygame.event.get()
nextPos = currentPos
if(keyUp):
if event.key == w :
key_w = false
#do the same for s, a and d
if(keyDown):
if event.key == w:
key_w = true
#same for s,a and d
if(key_w):
#update nextPos
#do same for key_s, key_a and key_d
currentPos = nextPos
问题在于有时当我在屏幕上移动鼠标,并且同时按键时,在处理鼠标事件的同时,按键事件被排队,这些多个按键会一起执行,导致玩家似乎跳了一个巨大的距离。
如果我根本不移动鼠标,则不会出现此问题。