这是一个类似的问题: 链接
通过调用GetAsyncKeyState()来解决这个问题。 虽然一切都很好,我需要一个Linux的select。 我需要知道button是否被按下,而不是被按下(因为键盘缓冲延迟)。
在OpenGL / Glut库中是否存在类似这样的事情,还是需要在其他地方看看?
我从来没有用过Glut,但是我知道很多人会说SDL比较好。 我已经使用了SDL,我非常喜欢它。 它做Glut所做的一切,还有更多。 在SDL中,您可以使用SDL_PollEvent()
来获得键盘状态,而不会出现键盘缓冲延迟。
编辑:我对Glut几乎一无所知,但它看起来像你可以使用glutKeyboardFunc
来检测正常的键, glutSpecialFunc
为不生成ASCII字符(如移位)的键。 我不确定是否有更好的方法,因为这看起来不太好。
您可以检测按键事件何时发生,记录该状态,然后监听密钥发布事件。
如上所述,你将不得不制造自己的状态机,这很容易。 但是你也需要使用这个回调方法,我想。
http://pyopengl.sourceforge.net/documentation/manual/glutKeyboardUpFunc.3GLUT.xml