捕捉老鼠?
我正在使用 GLUT 并开发 FPS 游戏。我需要一种方法来捕获鼠标,以便相机继续移动,因为现在当鼠标位置超过显示器限制时,无法计算 X 的变化或 Y 的变化。我怎样才能“捕获”鼠标过剩?
谢谢
I'm using GLUT and developing a FPS game. I need a way to trap the mouse so that the camera continues to move because right now when the mouse position exceeds the monitor limit, there is no way to calculate change in X or change in Y. How can I 'trap' the mouse with GLUT?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我建议使用现成的引擎,例如 OGRE 3D,但如果你真的想重新发明轮子,方法如下...
在我所知的所有情况下,PC FPS 游戏都会通过注册鼠标运动回调来“捕获”指针,记录相对运动,然后将指针扭曲回窗口中心。
下面是我在一两年前编写的一些代码,用于将鼠标输入添加到 OpenGL with C++ 课程中的示例乒乓球桌中:
它仅跟踪垂直运动,但添加水平运动是微不足道的。
I'd recommend using a ready-made engine like OGRE 3D instead, but if you really want to reinvent the wheel, here's how...
In all cases I'm aware of, PC FPS games "trap" the pointer by registering a mouse motion callback, noting the relative motion, and then warping the pointer back to the center of the window.
Here's some code I wrote to add mouse input to a sample ping-pong table in an OpenGL with C++ course a year or two ago:
It only tracks vertical motion, but adding horizontal is trivial.