|
发表于 2009-2-28 17:29:00
|
显示全部楼层
Re:请问Ogre如何扑捉鼠标的位置?
你应该设定一下鼠标的移动范围等于窗口的大小。
比如如下的函数:
void SceneListener::windowResized(Ogre::RenderWindow* rw)
{
//调整鼠标的范围
unsigned int width, height, depth;
int left, top;
//获得窗口的尺寸
rw->getMetrics(width, height, depth, left, top);
//设定鼠标
const OIS::MouseState &ms = mMouse->getMouseState();
ms.width = width;
ms.height = height;
}
再看你的代码:
和这个差别只在
OIS::MouseState ms=mMouse->getMouseState()
这句。
正确的应该是
OIS::MouseState &ms = mMouse->getMouseState();
看到差别没?就是这个&符号。你的定义方式相当于把MouseState复制出来一个副本,即ms。然后你又修改了ms的值,鼠标当前的属性并没有改变。 |
|