Вход контроллера LWJGL возвращает только «-1» или «ложь» - PullRequest
0 голосов
/ 22 января 2020

Я новичок ie в программировании java. Я пытаюсь следовать руководству YouTube по чтению входов контроллера с контроллера Xbox ( Link ).

Я скопировал кодовое слово в слово, но по какой-то причине, когда я его запускаю controller.getAxisValue и controller.isButtonPressed возвращают -1 и false соответственно.

Я пытался использовать разные контроллеры, перезагружать и закрывать такие программы, как Steam, которые могут использовать входы контроллера, но не повезло. Я почти уверен, что правильно установил библиотеки, так как следовал этому руководству. Пожалуйста, может кто-нибудь помочь. Спасибо.

код:

import org.lwjgl.LWJGLException;
import org.lwjgl.input.Controllers;
import org.lwjgl.input.Controller;

public class StarterController {

    static Controller controller;
    public static boolean Start;
    public static void main(String[] args) {


        try {
            Controllers.create();
        } catch (LWJGLException e) {
            //TODO Auto-Generation catch block
            e.printStackTrace();
        }
        Controllers.poll();

        for(int i=0;i<Controllers.getControllerCount();i++) {
            controller = Controllers.getController(i);
            System.out.println(controller.getName());
        }
        controller = Controllers.getController(18);
        for(int i=0;i<controller.getAxisCount();i++) {
            System.out.println(i + " " + controller.getAxisName(i));
            controller.setDeadZone(i, (float) 0.3); 
        }
        for(int i=0;i<controller.getButtonCount();i++) {
            System.out.println(i + " " + controller.getButtonName(i));
        }

        while(true) {
            controller.poll();
            Start = controller.isButtonPressed(7);
            System.out.print(controller.getAxisValue(0));

            System.out.print(controller.getAxisValue(1));

            System.out.print(controller.getAxisValue(2));

            System.out.print(controller.getAxisValue(3));

            System.out.print(controller.getAxisValue(4));

            System.out.println();

        }

    }

}

вывод:

WARNING: Found unknown Windows version: Windows 10
Attempting to use default windows plug-in.
Loading: net.java.games.input.DirectAndRawInputEnvironmentPlugin
Failed to initialize device Surface Dock Extender because of: java.io.IOException: Failed to acquire device (8007001e)
Failed to initialize device Surface Dock Extender because of: java.io.IOException: Failed to acquire device (8007001e)
Intel(R) Precise Touch Device
USB Receiver
G560 Gaming Speaker
USB Receiver
GPIO Button Driver
USB Receiver
Surface Dock Extender
GPIO Button Driver
Surface Dock Extender
USB Receiver
Intel(R) Precise Touch Device
Intel(R) Precise Touch Device
Intel(R) Precise Touch Device
G560 Gaming Speaker
HIDI2C Device
Intel(R) Precise Touch Device
G560 Gaming Speaker
Intel(R) Precise Touch Device
Controller (Xbox One For Windows)
0 Y Axis
1 X Axis
2 Y Rotation
3 X Rotation
4 Z Axis
0 Button 0
1 Button 1
2 Button 2
3 Button 3
4 Button 4
5 Button 5
6 Button 6
7 Button 7
8 Button 8
9 Button 9
-1.0-1.0-1.0-1.0-1.0
-1.0-1.0-1.0-1.0-1.0
-1.0-1.0-1.0-1.0-1.0
-1.0-1.0-1.0-1.0-1.0
-1.0-1.0-1.0-1.0-1.0
-1.0-1.0-1.0-1.0-1.0
-1.0-1.0-1.0-1.0-1.0
-1.0-1.0-1.0-1.0-1.0
-1.0-1.0-1.0-1.0-1.0
...