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