Чередование кадров должно происходить отдельно от обработки нажатия клавиш. Если б ты сделал в соответствии с приведенным мной псевдокодом, получилось бы так.
If KeyDown(KEY_UP) Then animate = true
If animate = True
frame :+ 1
If frame >= (3 - 1)
frame = 0
animate = False
End If
End If