这是一个众所周知的问题,有时甚至会出现在高预算的专业游戏中,当你将窗口类型设置为"无边界"并且你有一个扩展显示时,如果鼠标不受当前游戏运行的显示限制,则鼠标可以"滑出屏幕"。
我想知道LibGDX如何解决这个问题。
是否有一些直接的方法来限制鼠标移动?
或者需要对鼠标位置进行连续迭代计算之类的?
Libgdx提供了捕获窗口内鼠标光标的内置功能。你正在寻找的函数是gdx .input. setcursorcatching (true).
摘自文档:
void setcursorcched(布尔捕获)只能在桌面上使用。将鼠标光标位置限制在窗口内并隐藏鼠标光标。仍然报告X和y坐标,就好像没有捕获鼠标一样。参数:已捕获-是否捕获鼠标光标
或者在这里自己签出文档
LibGDX是构建在LWJGL之上的,所以你应该能够使用mouse . setgrab()方法。
API中的更多信息:http://www.lwjgl.org/javadoc/org/lwjgl/input/Mouse.html#setGrabbed(boolean)
这里有一个关于调用鼠标。setgrab()时的变化的讨论:http://lwjgl.org/forum/index.php?topic=5150.0