3

程序员新年快乐!

想象一下在带有两只鼠标的计算机上运行的两人 Java Swing 游戏。是否可以为每个玩家分配一只鼠标并依次锁定每只鼠标然后交换活动鼠标?两只老鼠将共享相同的 MouseListener 方法。

我看不到有关这种可能性的互联网参考,但我觉得这种情况以前曾被访问过。

乔治FK

4

3 回答 3

3

问题在于底层操作系统层的设备处理。大多数系统将输入合并到一个虚拟鼠标中,这就是为什么您可以同时激活触控板和 USB 鼠标的原因。当然,当您尝试同时使用两者时,会导致指针移动发生冲突。

我认为您实现这一点的方式是通过直接与特定鼠标设备对话的本机方法。因此,您将使用其中两个对象来轮询每个鼠标并控制屏幕上的游戏控件。

于 2013-01-02T20:03:24.863 回答
3

这是可能的,但当然不是在纯 Java 中,因此您必须使用一些JNI

查看ManyMouse

ManyMouse 是一个库,它将对多个鼠标输入的处理抽象为一个微型的跨平台 API。它旨在用于具有独特输入需求的游戏和非传统应用程序。在大多数平台上,它至少可以使所有 USB 鼠标可用,但在许多情况下,也可以使串行鼠标和内置笔记本电脑触控板可用。

这是源代码和所有内容,由于某些或其他原因,它在实际网站上不可用:

于 2013-01-02T20:07:05.533 回答
0

一个有趣的问题。整个MSDN 鼠标输入手册没有提到控制信号来自哪个鼠标。

当然,它有 BIOS 命令,但因此您的代码仅适用于特定计算机。

所以,如果你想要一个通用的解决方案,你应该编写自己的“双鼠标驱动程序”。或者在网上找这样的。

于 2013-01-02T20:16:14.490 回答