对于那些玩过 Madness Interactive 的人来说,最令人沮丧的事情之一就是当光标离开游戏区域时,您不小心点击了。这会导致游戏散焦,您的角色会在几秒钟内死亡。为了解决这个问题,我想制作一个可以在后台运行的 Java 应用程序,它将光标保持在屏幕内,直到我按下某个键,例如 ESC 或其他键。
我看到了两种实现方式,但我不知道它们是否可行。
- 制作一个与 Madness Interactive 的渲染区域大小相匹配的 AWT 框架,并使用它来控制光标。
- 使用一些脱离上下文的操作系统调用将光标保持在给定区域。
方法 1 的优点:更容易调整框架的大小,以便用户可以看到封闭区域的形状和位置。
方法 1 的潜在问题:AWT 框架可能需要从运行游戏的浏览器窗口窃取焦点,从而使整个解决方案毫无意义。
我的问题是,这两种方法是否可行?如果没有,是否有可行的选择?
编辑:如有必要,我愿意使用另一种编程语言。
EDIT2:我可能会为此开发一个浏览器插件,但我以前从未做过那种开发。我会研究它。
最佳答案
如果您仍然对使用 Java 工作感兴趣,这里有一个可能的解决方案。
首先,为了将光标限制在一个区域内,您可以使用 Java Robot 类。
mouseMove(int x, int y);
然后,您可以使用 AWT 的 MouseInfo 来获取鼠标光标的位置。
PointerInfo mouseInfo = MouseInfo.getPointerInfo();
Point point = mouseInfo.getLocation();
int x = (int) point.getX();
int y = (int) point.getY();
然后,每当鼠标光标的 x
和 y
值超过某个点时,使用 Java Robot 类将它们移回。
关于Java:将光标保持在一个区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13831695/