这是一个广为人知的问题,有时甚至会出现在高预算的专业游戏中,当您将窗口类型设置为 “无边界” 时如果鼠标不受当前游戏运行显示的限制,鼠标可以“在屏幕外滑动”的扩展显示。
我想知道LibGDX如何解决这个问题。
是否有一些约束鼠标移动的直接方法?
或者是否需要对鼠标位置进行连续迭代计算?
答案 0 :(得分:3)
Libgdx提供内置函数,用于在窗口内捕获鼠标光标。你正在寻找的函数是Gdx.input.setCursorCatched(true)。
取自文档:
void setCursorCatched(boolean catched) 只适用于桌面。将鼠标光标位置限制在窗口并隐藏鼠标光标。仍会报告X和y坐标,就像没有捕获鼠标一样。 参数: catched - 是否捕获或不捕获鼠标光标
或自行结帐文档here。
答案 1 :(得分:1)
LibGDX建立在LWJGL之上,因此您应该能够使用Mouse.setGrabbed()方法。
API中的更多信息:http://www.lwjgl.org/javadoc/org/lwjgl/input/Mouse.html#setGrabbed(boolean)
以下是关于调用Mouse.setGrabbed()时的更改的讨论:http://lwjgl.org/forum/index.php?topic=5150.0