如何在 OpenGL/Glut 中更改鼠标光标的位置?

Posted

技术标签:

【中文标题】如何在 OpenGL/Glut 中更改鼠标光标的位置?【英文标题】:How can I change the position of the mouse cursor in OpenGL/Glut? 【发布时间】:2009-04-24 02:35:32 【问题描述】:

我正在编写一个简单的游戏,我将让鼠标控制相机(使用 GlutPassiveMotionFunc)。

我将根据回调之间的鼠标差异进行俯仰和偏航,但是我认为每次尝试移动鼠标时将鼠标“强制”回到屏幕中心是个好主意。这样他们的光标就不会在屏幕的边缘,他们不能在那个方向上进一步移动。

我可以使用什么 Glut / OpenGL 命令来强制改变鼠标的位置?

【问题讨论】:

【参考方案1】:

使用glutWarpPointer(x, y),其中xy(均为ints)以像素为单位(相对于窗口的原点)。例如:

glutWarpPointer(windowWidth / 2, windowHeight / 2);

【讨论】:

这个解决方案对我不起作用,因为 glutWarpPointer(x,y) 也会重置鼠标位置。 “重置鼠标位置”是什么意思?这就是它应该做的(在这种情况下,您在调用 glutWarpPointer 重新居中鼠标之前读取鼠标位置)。也许我误解了你要做什么?【参考方案2】:

抱歉回复晚了。我的意思是,在我使用 glutWrapPointer 函数之后,如果我打印出 x 和 y 值,我无法捕捉光标上的变化,它总是打印出我提供的 glutWrapPointer 函数内的值。我所做的修复它是将这个函数移动到 openGl 的 Animate 函数中,它工作正常。

【讨论】:

以上是关于如何在 OpenGL/Glut 中更改鼠标光标的位置?的主要内容,如果未能解决你的问题,请参考以下文章

鼠标点击开始动画 OpenGL/GLUT C++

用鼠标在 OpenGL GLUT 中绘制多边形

OpenGL/GLUT 使骑行顺畅的简单问题

Mac 上的 OpenGL/GLUT 应用程序无法获得焦点 [关闭]

鼠标左键按下时如何更改鼠标光标?

如何在 Windows 中为 opengl 编译 gcc?