📜  jinput 与 gradle (1)

📅  最后修改于: 2023-12-03 15:16:40.007000             🧑  作者: Mango

JInput 与 Gradle

介绍

JInput 是一个 Java 鼠标/键盘等输入设备的 API,主要用于游戏开发等领域。Gradle 是一个基于 Groovy 的构建工具,它可以管理项目依赖,编译代码等。

本文将介绍在 Gradle 中如何引入 JInput,并进行简单的使用。

引入 JInput

在 Gradle 中引入 JInput 可以使用 Maven Central 仓库,添加以下依赖:

dependencies {
    implementation 'net.java.jinput:jinput:2.0.9'
}
使用示例
获取键盘输入

JInput 提供了 Keyboard 类用于获取键盘输入。下面是一个示例代码:

import net.java.games.input.Component;
import net.java.games.input.Controller;
import net.java.games.input.ControllerEnvironment;
import net.java.games.input.Keyboard;

public class Main {
    public static void main(String[] args) {
        ControllerEnvironment ce = ControllerEnvironment.getDefaultEnvironment();
        Controller[] cs = ce.getControllers();

        Keyboard keyboard = null;
        for (int i = 0; i < cs.length; i++) {
            Controller c = cs[i];
            if (c.getType() == Controller.Type.KEYBOARD) {
                keyboard = (Keyboard)c;
                break;
            }
        }
        
        if (keyboard != null) {
            keyboard.poll();
            Component[] cs = keyboard.getComponents();
            for (int i = 0; i < cs.length; i++) {
                Component c = cs[i];
                if (c.isAnalog()) {
                    System.out.println(c.getIdentifier() + ": " + c.getPollData());
                } else {
                    if (c.getPollData() != 0.0f) {
                        System.out.println(c.getIdentifier());
                    }
                }
            }
        }
    }
}

上面的代码将打印出当前按下的键以及游戏手柄的摇杆等信息。

获取鼠标输入

JInput 提供了 Mouse 类用于获取鼠标输入。下面是一个示例代码:

import net.java.games.input.Component;
import net.java.games.input.Controller;
import net.java.games.input.ControllerEnvironment;
import net.java.games.input.Mouse;

public class Main {
    public static void main(String[] args) {
        ControllerEnvironment ce = ControllerEnvironment.getDefaultEnvironment();
        Controller[] cs = ce.getControllers();

        Mouse mouse = null;
        for (int i = 0; i < cs.length; i++) {
            Controller c = cs[i];
            if (c.getType() == Controller.Type.MOUSE) {
                mouse = (Mouse)c;
                break;
            }
        }

        if (mouse != null) {
            mouse.poll();
            Component[] cs = mouse.getComponents();
            for (int i = 0; i < cs.length; i++) {
                Component c = cs[i];
                if (c.isAnalog()) {
                    System.out.println(c.getIdentifier() + ": " + c.getPollData());
                } else {
                    if (c.getPollData() != 0.0f) {
                        System.out.println(c.getIdentifier());
                    }
                }
            }
        }
    }
}

上面的代码将打印出当前鼠标的位置以及按键的状态。

总结

通过本文的介绍,你应该对如何在 Gradle 中引入 JInput 并进行简单的使用有了基本的了解。但是,JInput 已经停止维护并且不支持 macOS 等系统,建议在开发中使用其他现代的输入设备库。