gpt4 book ai didi

java - Jinput - 获取鼠标位置

转载 作者:行者123 更新时间:2023-11-30 07:52:59 30 4
gpt4 key购买 nike

我正在尝试使用 Jinput 打印出鼠标位置:

public static void main(String[] args) {
input = new InputManager();

while (true) {
for (Mouse mouse : input.getMice()) {
mouse.poll();
System.out.println("Mouse X: " + mouse.getX().getPollData());
System.out.println("Mouse Y: " + mouse.getY().getPollData());
System.out.println("---------");
}
try {
Thread.sleep(100);
} catch (Exception e) {
// DO NOTHING < BAD
}
}
}

这是我的输入管理器,它在初始化时扫描所有输入设备,并将所有鼠标分成一个单独的列表:

public class InputManager {
public ArrayList<Mouse> mice;

public InputManager() {
mice = new ArrayList<Mouse>();
Controller[] inputs = ControllerEnvironment.getDefaultEnvironment()
.getControllers();
for (int i = 0; i < inputs.length; i++) {
Mouse mouse;
if (inputs[i].getType() == Controller.Type.MOUSE) {
mouse = (Mouse) inputs[i];
mice.add(mouse);
}
}
System.out.println("Discovered " + mice.size() + " mice.");
}

public ArrayList<Mouse> getMice() {
return mice;
}
}

对于 x 和 y,打印输出的信息始终为 0。我在 Windows 10 上运行此程序,这会导致任何问题吗?如何使用Jinput获取鼠标的鼠标数据?

最佳答案

JInput 处于较低级别,您会混淆窗口指针和鼠标。鼠标只是一个具有 >2 个相对轴的设备。每次轮询后或每个事件中的值不是像素数或位置,它只是相对于先前值的粗略抽象单位的偏移量。对于相同的物理距离变化量,某些鼠标会报告更大的值,因此您必须对其进行缩放,这就是使用 directx 鼠标(也是相对轴设备)的游戏具有鼠标缩放 slider 的原因。

关于java - Jinput - 获取鼠标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33091388/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com