我正在学习OpenCV,因此决定使用它来制作蛇游戏。它几乎完成了,但是有一个轻微的问题似乎很简单,但是我找不到解决方案。
while True:
move()
cv2.imshow('Snake Game', frame)
cv2.waitKey(250)
它应该在下一帧之前等待250毫秒,但是按下按键会中断等待,因此当我按住一个键时游戏会加快速度。如何使其忽略键盘事件而仅使用时间? 最佳答案
如果waitKey
在按键后没有停止等待,我会感到非常惊讶。实际上,名称本身就暗示了这一点。因此,基本上就像调用一个名为max的函数,然后期望最小值。
根据您的代码和所描述的内容,您使用waitKey
的原因有两个:
我认为,要做的第一件事是停止等待,并在准备就绪后立即连续显示帧。对于同步,您只需要节省每帧打印的时间。使用这段时间,您可以在用户交互或决定如何处理框架或更新之后进行更新。一个可以帮助您的地方是查看游戏循环的实现方式。在这里看看:https://gamedev.stackexchange.com/questions/651/how-should-i-write-a-main-game-loop
关于python - 忽略OpenCV中waitKey()上的键盘事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62740475/