这是一个类似的问题:Link
通过调用GetAsyncKeyState()解决了这个问题。虽然一切都很好,但我需要一个Linux替代方案。我需要知道按钮是否按住,而不仅仅是按下(因为键盘缓冲延迟)。
OpenGL / Glut库中是否存在类似的内容,或者我需要查看其他内容吗?
答案 0 :(得分:3)
我从未使用过Glut,但我知道很多人会说SDL更好。我使用过SDL,我非常喜欢它。它完成Glut所做的一切以及更多。在SDL中,您可以使用SDL_PollEvent()
获取键状态而不会出现键盘缓冲延迟。
编辑:我对Glut几乎一无所知,但看起来您可以使用glutKeyboardFunc
来检测正常的密钥,而glutSpecialFunc
则可以使用不生成ASCII字符的密钥(例如shift)。我不确定是否有更好的方法,因为这看起来不太好。
答案 1 :(得分:0)
您可以检测按键事件发生的时间,记录该状态,然后侦听按键释放事件。
答案 2 :(得分:0)
如上所述,您必须制作自己的状态机,这很容易。但是你也需要使用这种回调方法。
http://pyopengl.sourceforge.net/documentation/manual/glutKeyboardUpFunc.3GLUT.xml