如何在LibGDX中约束鼠标光标在窗口的边界内



这是一个众所周知的问题,有时甚至会出现在高预算的专业游戏中,当你将窗口类型设置为"无边界"并且你有一个扩展显示时,如果鼠标不受当前游戏运行的显示限制,则鼠标可以"滑出屏幕"。

我想知道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

最新更新