簡體   English   中英

Jinput輪詢數據永不更改

[英]Jinput Poll Data Never Changes

我試圖創建一個簡單的測試程序來熟悉另一個項目的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(); } } } 

}

我一直在嘗試在線查找答案,但是該庫的文獻資料不多,而且似乎通常都包裝在其他專門制作游戲的庫中。 (上述項目本質上是機器人技術)

您必須使用EventQueue

player.poll();
        EventQueue queue = player.getEventQueue();
        Event event = new Event();
        while (queue.getNextEvent(event)) {
            Component comp = event.getComponent();
            if (comp.getIdentifier() == Component.Identifier.Button._6){
                if (comp.getPollData() == 1){
                    example
                }

在構建如上所示的控制台應用程序時,使用JInput始終將鼠標X和y位置的值始終保持為零。 我相信可能需要創建某種針對窗口的應用程序以使JInput正常工作。 請參閱此處的代碼示例解決方案和描述的類似問題。
代碼解決方案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM