Я использую библиотеку 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
Проблема в том, что иногда, когда я перемещаю мышь по экрану и одновременно нажимаю клавишу, при обработке событий мыши события клавиши ставятся в очередь, и эти несколько нажатий клавиш выполняются вместе. , так что игроку кажется, что он прыгает на огромное расстояние.
Эта проблема не возникает, если я вообще не двигаю мышью.