2016-03-28 82 views
2

我有一个javafx游戏,顺便说一句,作为一个窗口的应用程序运行。游戏是通过移动和点击鼠标来控制的,但是当我将鼠标移动太远并且移出窗口时会出现问题,因为我之前提到点击也是游戏的一部分,我们都知道点击如果我偶然点击了谷歌浏览器,并且我的游戏隐藏在谷歌浏览器后面,但由于它仍在运行,我将失去它,除非我能够快速地将游戏中的Alt + Tab快速转换回游戏。如何阻止鼠标退出窗口?

我希望通过不允许鼠标退出窗口,将其限制到我的游戏运行的窗口/舞台/场景的边界来解决此问题。是否可以像这样收缩鼠标?我应该怎么做?

+1

http://stackoverflow.com/questions/2941324/how-do-i-set-the-position-of-the-mouse-in-java当用户尝试移动它时,将其移动到边界。 – Sarvadi

+0

我可以尝试,一旦我回到我的工作电脑回家 – Chexxor

回答

1

可以通过Robot来做到这一点。具体而言,您可以使用mouseMove重置鼠标位置,当它偏离太远时。

或者,您可能会考虑允许用户跳过您的窗口,但让您的游戏对该事件做出反应。例如,当鼠标离开窗口时暂停游戏。

您可以使用pointerInfo来跟踪光标的位置(如讨论here)。

+0

我会检查出机器人,当我回家,但我手动必须将鼠标移动到我想要的位置?所以我必须计算它“应该”在哪里? – Chexxor

+1

是的。使用'mouseMove',你可以明确地设置光标的坐标。一个例子是不断地观察光标的X和Y坐标,并简单地重置X或Y以防止鼠标离开窗口的边界。或者,您可以将光标移回窗口的中心。具体的实施将取决于你。 – mcmahoniel