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

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

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

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

【问题讨论】:

    标签: opengl mouse glut


    【解决方案1】:

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

    glutWarpPointer(windowWidth / 2, windowHeight / 2);
    

    【讨论】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多