如何在 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)
,其中x
和y
(均为int
s)以像素为单位(相对于窗口的原点)。例如:
glutWarpPointer(windowWidth / 2, windowHeight / 2);
【讨论】:
这个解决方案对我不起作用,因为 glutWarpPointer(x,y) 也会重置鼠标位置。 “重置鼠标位置”是什么意思?这就是它应该做的(在这种情况下,您在调用 glutWarpPointer 重新居中鼠标之前读取鼠标位置)。也许我误解了你要做什么?【参考方案2】:抱歉回复晚了。我的意思是,在我使用 glutWrapPointer 函数之后,如果我打印出 x 和 y 值,我无法捕捉光标上的变化,它总是打印出我提供的 glutWrapPointer 函数内的值。我所做的修复它是将这个函数移动到 openGl 的 Animate 函数中,它工作正常。
【讨论】:
以上是关于如何在 OpenGL/Glut 中更改鼠标光标的位置?的主要内容,如果未能解决你的问题,请参考以下文章