【发布时间】:2012-06-24 09:13:34
【问题描述】:
我正在尝试检测鼠标移动事件并使用 sf::RenderWindow pollEvent 方法将其移回屏幕中间,并检测事件类型 sf::Event::MousePressed。问题是当我检测到鼠标移动时,我需要将鼠标移回屏幕中间,为此我使用 sf::Mouse::setPosition 但我认为(也许我错了)该函数本身调用sf::Event::MouseMoved 用的时候,怕是死循环了。
我这样做的方式示例:(我知道 0,0 它不是中间,它只是示例)
while (app.pollEvent(Event))
{
if(Event.type == sf::Event::MouseMoved)
{
sf::Mouse::setPosition(0 , 0));
}
}
对不起我的英语不好! 提前致谢!
【问题讨论】:
-
如果这给您带来问题,只需在将鼠标移到那里之前添加一个检查以确保鼠标不在 (0, 0) 处。
-
请不要移动鼠标!这太可怕了,根本不方便用户使用。说真的,不要这样做。你也不会遇到这个问题(因为我确定该功能不适合这种用途)。
-
那么我应该怎么做呢?我想通过屏幕中间位置减去鼠标位置来检查每一帧鼠标移动的增量。