如何在LibGDX中将鼠标光标限制在窗口的范围内?

时间:2014-07-16 10:08:30

标签: java libgdx

这是一个广为人知的问题,有时甚至会出现在高预算的专业游戏中,当您将窗口类型设置为 “无边界” 时如果鼠标不受当前游戏运行显示的限制,鼠标可以“在屏幕外滑动”的扩展显示。

我想知道LibGDX如何解决这个问题。

是否有一些约束鼠标移动的直接方法?

或者是否需要对鼠标位置进行连续迭代计算?

2 个答案:

答案 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