用JInput(Java)编程键盘
我正在用Java(Jogl,JInput)编写一个游戏。我不确定我的代码。如何记录键的强度? 首先,我在任何键盘的事件上记录一对(键名,毫秒)。 然后我尝试用新键的值更新游戏的状态 我想我的第一部分代码有错误用JInput(Java)编程键盘,java,keypad,jinput,Java,Keypad,Jinput,我正在用Java(Jogl,JInput)编写一个游戏。我不确定我的代码。如何记录键的强度? 首先,我在任何键盘的事件上记录一对(键名,毫秒)。 然后我尝试用新键的值更新游戏的状态 我想我的第一部分代码有错误 PositionButton pb = positionButtonList.get(comp.getName()); System.out.println(comp.getName()); p
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集成,它只是起作用,它可能会帮助您了解自己代码中的错误。