public static int L1 = 0; public static int L2 = 1; public static int L3 = 2; public static int R1 = 3; public static int R2 = 4; public static int R3 = 5; public static int SELECT = 6; public static int START = 7; public static int A = 8; public static int B = 9; public static int X = 10; public static int Y = 11; public static int XBOX = 12; public static int DPAD_UP = 13; public static int DPAD_DOWN = 14; public static int DPAD_LEFT = 15; public static int DPAD_RIGHT = 16; import org.gamecontrolplus.gui.*; import org.gamecontrolplus.*; import net.java.games.input.*; ControlIO controlIO; Configuration gpad_config; ControlDevice gpad; boolean gamePadAvailable = false; boolean[] gpadButtonPresses = new boolean[17]; boolean[] dpadButtons = new boolean[4]; String[] buttonNames = {"L1", "L2", "L3", "R1", "R2", "R3", "SELECT", "START", "A", "B", "X", "Y", "XBOX", "DPAD_UP", "DPAD_DOWN", "DPAD_LEFT", "DPAD_RIGHT"}; PVector LSTICK, RSTICK; void initGamepad() { controlIO = ControlIO.getInstance(this); //gpad = controlIO.filter(GCP.GAMEPAD).getMatchedDevice("WIRELESS"); if (gpad == null) { println("No suitable device configured"); } else { gamePadAvailable = true; } LSTICK = new PVector(0, 0); RSTICK = new PVector(0, 0); } public void getUserInput() { if (gamePadAvailable) { dpadButtons[0] = gpad.getHat("DPAD").up(); dpadButtons[1] = gpad.getHat("DPAD").down(); dpadButtons[2] = gpad.getHat("DPAD").left(); dpadButtons[3] = gpad.getHat("DPAD").right(); for (int i = 0; i < 17; i++) { boolean thisButton = (i < 13) ? gpad.getButton(buttonNames[i]).pressed() : dpadButtons[i-13]; if (gpadButtonPresses[i] != thisButton) { if (gpadButtonPresses[i]) buttonReleased(i); else buttonPressed(i); } gpadButtonPresses[i] = thisButton; } LSTICK.set(roundFloat(gpad.getSlider("LSTICK_X").getValue(), 2), roundFloat(gpad.getSlider("LSTICK_Y").getValue(), 2)); RSTICK.set(roundFloat(gpad.getSlider("RSTICK_X").getValue(), 2), roundFloat(gpad.getSlider("RSTICK_Y").getValue(), 2)); } } void buttonPressed(int btn) { println("Pressed " + buttonNames[btn]); } void buttonReleased(int btn) { println("Released " + buttonNames[btn]); } void keyPressed() { switch(key) { case('w'): LSTICK.y = 1.0; break; case('a'): LSTICK.x = -1.0; break; case('s'): LSTICK.y = -1.0; break; case('d'): LSTICK.x = 1.0; break; case('Q'): buttonPressed(0); break; case('E'): buttonPressed(0); break; case(' '): buttonPressed(0); break; case(RETURN): buttonPressed(0); break; case(SHIFT): buttonPressed(0); break; case(CONTROL): buttonPressed(0); break; case(ALT): buttonPressed(0); break; case(UP): buttonPressed(0); break; case(DOWN): buttonPressed(0); break; case(LEFT): buttonPressed(0); break; case(RIGHT): buttonPressed(0); break; default: break; } } void keyReleased() { switch(key) { case('w'): LSTICK.y = 0; break; case('a'): LSTICK.x = 0; break; case('s'): LSTICK.y = 0; break; case('d'): LSTICK.x = 0; break; case('Q'): buttonPressed(0); break; case('E'): buttonPressed(0); break; case(' '): buttonPressed(0); break; case(RETURN): buttonPressed(0); break; case(SHIFT): buttonPressed(0); break; case(CONTROL): buttonPressed(0); break; case(ALT): buttonPressed(0); break; case(UP): buttonPressed(0); break; case(DOWN): buttonPressed(0); break; case(LEFT): buttonPressed(0); break; case(RIGHT): buttonPressed(0); break; default: break; } }