如何判断OpenGL / Glut中是否按下按钮? (Linux)的

时间:2009-04-30 20:17:11

标签: linux opengl glut

这是一个类似的问题:Link
通过调用GetAsyncKeyState()解决了这个问题。虽然一切都很好,但我需要一个Linux替代方案。我需要知道按钮是否按住,而不仅仅是按下(因为键盘缓冲延迟)。

OpenGL / Glut库中是否存在类似的内容,或者我需要查看其他内容吗?

3 个答案:

答案 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