我正在使用控制台在Windows上用C ++制作游戏,其中涉及基于回合的战斗。我正在使用该Sleep()
功能延迟战斗中的消息,然后在击键时前进。我的问题是,尽管游戏被睡眠功能“暂停”,但它仍会计算用户的按键,然后开始使用它们。
例如,如果用户在游戏处于休眠状态时四次按下“ a”键,则在按下该键很长时间之后,它将继续使用该键四次。
如何临时“关闭”用户按键注册程序的功能?
_kbhit()
并getch()
具有缓冲功能。睡眠状态下键入的所有内容都将发送到缓冲区,并在您的函数醒来读取新的kb命中后立即进行顺序处理。
作为无缓冲的替代方法,您可以考虑GetKeyboardState()
在某一特定时刻获取键盘的状态。它没有缓冲,因此更适合您的游戏。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句