0
我正在尝试创建一个简单的测试程序来熟悉另一个项目的JInput库。我已经用所有提供的测试类对我的控制器进行了测试,并且按预期工作。但是,当我尝试轮询控制器时,无论我的输入如何,所有值都保持不变。这里是我一起工作的代码:Jinput投票数据从不改变
public class ControllerTest {
public static void main(String[] args){
//System.out.println("Hello World");
Controller[] ca = ControllerEnvironment.getDefaultEnvironment().getControllers();
Controller gamepad = null;
Component[] components = null;
EventQueue eventQueue;
// Run through the list of available input devices and get the gamepad
for(int i = 0; i < ca.length; i ++){
if(ca[i].getType().equals(Controller.Type.GAMEPAD)){
gamepad = ca[i];
}
}
// Print the name of the controller and its type
if(gamepad != null){
System.out.println(gamepad.getName() + ": " + gamepad.getType());
components = gamepad.getComponents();
System.out.println("\tComponents:");
for(int i = 0; i < components.length; i ++){
System.out.println("\t\tComponent #" + i + ": " + components[i].getName() + "\n\t\t\tIs Relative: "
+ components[i].isRelative());
}
}
else{
System.out.println("No gamepad connected");
}
while (true){
// If we have no gamepad connected, exit
if(gamepad == null){
System.out.println("No Gamepad detected, exiting...");
System.exit(0);
}
// Poll controller
gamepad.poll();
Component[] comp = gamepad.getComponents();
for(int i = 0; i < comp.length; i ++){
StringBuffer buffer = new StringBuffer();
buffer.append(comp[i].getName());
buffer.append(", Value: " + comp[i].getPollData());
System.out.println(buffer.toString());
}
try{
Thread.sleep(20); // Sleep before polling again
}
catch(InterruptedException e){
e.printStackTrace();
}
}
}
}
我一直试图在网上找到答案,但这个库是不是很好的记录,似乎通常被包裹在特定的制作游戏其他库。 (上述项目在本质上是机器人)
所以,我想实现这个版本轮询的控制器,但遗憾的是现在什么都不会打印。代码中的某处似乎存在一个奇怪的断开连接,因为随库提供的测试类可以与我的控制器一起工作。 – daemor