我正在设计一款带有OpenGL 4.1,Xcode和GLFW的玩具游戏引擎。我注意到如果我在加载场景时移动鼠标,尽管有调用,鼠标光标也不会消失
glfwSetInputMode(window, GLFW_CURSOR, GLFW_CURSOR_DISABLED);
游戏运行正常,但光标仍然可见。
我在加载场景之后尝试放入glfwSetInputMode()调用,就在进入游戏循环之前,但它没有帮助。此外,启用光标并再次禁用它不会影响它在屏幕上的存在。我该如何解决这个问题?感谢。
答案 0 :(得分:1)
Cursor不是OpenGL功能,这是底层操作系统图形系统功能。 GLFW库为您提供跨平台系统API包装器。
根据GLWF API:
GLFW_CURSOR_HIDDEN使光标在窗口的客户区域上方不可见,但不会限制光标离开。
当
GLFW_CURSOR_DISABLED隐藏并抓取光标,提供虚拟和无限制的光标移动。这对于实现例如3D相机控件是有用的。
所以GLFW_CURSOR_DISABLED
在全屏模式下非常有用,因为GLFW_CURSOR_HIDDEN
在窗口模式下非常有用。
答案 1 :(得分:0)
我刚刚遇到了同样的问题,我设法找到了适合我的解决方案。经过多次摸索,我发现只要在禁用光标之前确保至少调用一次 glfwPollEvents()
就可以了。希望这对某人有所帮助。