我使用opengl作为我的窗口。我想实现一个相机类,发现常规光标(GLFW_CURSOR_NORMAL)不适合相机。因此,我运行命令glfwSetInputMode(window,GLFW_CURSOR,GLFW_CURSOR_DISABLE)
让opengl为我重新定位鼠标并通过我使用方法glfwSetCursorCallback(window,callbackPos)
设置的回调方法返回光标位置
回调函数(callbackPos)接收一个窗口,并且如glfw网站上所述,x位置和y位置有两个双倍。 http://www.glfw.org/docs/latest/input_guide.html
但是,每当我将鼠标向一个方向移动时,这两个双打就会不断增长和增长。我的问题来自这样一个事实,即通过整个窗口的使用和鼠标在一个方向上的移动,整个双倍将太小,甚至不能保持值,因为它不断增长。有没有解决这个问题的方法,或者这不是我应该担心的事情?
答案 0 :(得分:1)
所以我实际上不确定这个Truly Correct(TM)是否有效,但是我和您一样担心,发现您的问题没有答案,所以我不妨发布解决方案(对我有用)。 / p>
在光标位置回调中,您只需调用String
,它将虚拟光标的位置重新设置为(0,0);光标位置回调的下一个调用现在将相对于此!请注意,至少在我的测试中,在回调函数中设置光标位置不会 not 导致再次调用该回调(即仅在用户实际用手移动光标时才调用该回调)
换句话说,代码是这样的:
glfwSetCursorPos(window, 0, 0)