Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用JInput(Java)编程键盘_Java_Keypad_Jinput - Fatal编程技术网

用JInput(Java)编程键盘

用JInput(Java)编程键盘,java,keypad,jinput,Java,Keypad,Jinput,我正在用Java(Jogl,JInput)编写一个游戏。我不确定我的代码。如何记录键的强度? 首先,我在任何键盘的事件上记录一对(键名,毫秒)。 然后我尝试用新键的值更新游戏的状态 我想我的第一部分代码有错误 PositionButton pb = positionButtonList.get(comp.getName()); System.out.println(comp.getName()); p

我正在用Java(Jogl,JInput)编写一个游戏。我不确定我的代码。如何记录键的强度? 首先,我在任何键盘的事件上记录一对(键名,毫秒)。 然后我尝试用新键的值更新游戏的状态

我想我的第一部分代码有错误

                PositionButton pb = positionButtonList.get(comp.getName());
                System.out.println(comp.getName());
                pb.nanotimeEllapsed = System.nanoTime() - pb.startTime;
                pb.startTime = System.nanoTime() - pb.nanotimeEllapsed;


public void on(String compName, float value) {
    System.out.println(compName + "|" + value);

    if (positionButtonList.get(compName) == null) {
        System.exit(-1);
    }
    long move;
    System.out.println("Move intensity: "+(move = (long) (value * positionButtonList.get(compName).nanotimeEllapsed / 1000.0)));
    switch (compName) {
        case "Axe X":
            if (move > 0) {
                if (positionButtonList.get(compName) != null) {
                    positionUpdate.rotationDroite(move);

                }
            } else if (positionButtonList.get(compName) != null) {
                positionUpdate.rotationGauche(-move);
            }
            break;
        case "Axe Y":
            if (move > 0) {
                if (positionButtonList.get(compName) != null) {
                    positionUpdate.acc(move);

                }
            } else if (positionButtonList.get(compName) != null) {
                positionUpdate.dec(-move);
            }
            break;
    }
}
完整代码:

你说的“关键力量”是什么意思?我不太清楚。但我想做的是记录键盘的每一个动作,这样游戏就会“正常”运行,正常情况下:让一个线程记录每一个动作,并用键盘提供的值更新游戏位置/角色/动作。JInput教程提供的示例代码似乎并不完美——在我的例子中,它根本不起作用。您应该看看JogAmp的Ardor3D延续中的JInput集成,它只是起作用,它可能会帮助您了解自己代码中的错误。