Added OUYA gamepad support.
This commit is contained in:
@@ -122,9 +122,13 @@ public class InGameState extends BaseState{
|
|||||||
motorButtonsPointers[4] = -1;
|
motorButtonsPointers[4] = -1;
|
||||||
motorButtonsPointers[5] = -1;
|
motorButtonsPointers[5] = -1;
|
||||||
|
|
||||||
motorGamepadButtonPressed = new boolean[2];
|
motorGamepadButtonPressed = new boolean[6];
|
||||||
motorGamepadButtonPressed[0] = false;
|
motorGamepadButtonPressed[0] = false;
|
||||||
motorGamepadButtonPressed[1] = false;
|
motorGamepadButtonPressed[1] = false;
|
||||||
|
motorGamepadButtonPressed[2] = false;
|
||||||
|
motorGamepadButtonPressed[3] = false;
|
||||||
|
motorGamepadButtonPressed[4] = false;
|
||||||
|
motorGamepadButtonPressed[5] = false;
|
||||||
|
|
||||||
axisStopSent = new boolean[4];
|
axisStopSent = new boolean[4];
|
||||||
axisStopSent[0] = true;
|
axisStopSent[0] = true;
|
||||||
@@ -623,29 +627,67 @@ public class InGameState extends BaseState{
|
|||||||
public boolean buttonDown(Controller controller, int buttonCode){
|
public boolean buttonDown(Controller controller, int buttonCode){
|
||||||
MotorEvent event;
|
MotorEvent event;
|
||||||
|
|
||||||
if(stateActive && Ouya.runningOnOuya){
|
if(stateActive /*&& Ouya.runningOnOuya*/){
|
||||||
Gdx.app.log(TAG, CLASS_NAME + ".buttonDown() :: " + controller.getName() + " :: " + Integer.toString(buttonCode));
|
Gdx.app.log(TAG, CLASS_NAME + ".buttonDown() :: " + controller.getName() + " :: " + Integer.toString(buttonCode));
|
||||||
|
|
||||||
if(buttonCode == Ouya.BUTTON_L1){
|
if(buttonCode == Ouya.BUTTON_L1){
|
||||||
motorGamepadButtonPressed[0] = true;
|
motorGamepadButtonPressed[0] = true;
|
||||||
|
|
||||||
if(!motorGamepadButtonPressed[1]){
|
if(!motorGamepadButtonPressed[4]){
|
||||||
event = new MotorEvent();
|
event = new MotorEvent();
|
||||||
event.setMotor(motor_t.MOTOR_A);
|
event.setMotor(motor_t.MOTOR_A);
|
||||||
event.setPower((byte)100);
|
event.setPower((byte)-100);
|
||||||
queue.addEvent(event);
|
queue.addEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
}else if(buttonCode == Ouya.BUTTON_R1){
|
}else if(buttonCode == Ouya.BUTTON_R1){
|
||||||
motorGamepadButtonPressed[1] = true;
|
motorGamepadButtonPressed[1] = true;
|
||||||
|
|
||||||
if(!motorGamepadButtonPressed[0]){
|
if(!motorGamepadButtonPressed[5]){
|
||||||
event = new MotorEvent();
|
event = new MotorEvent();
|
||||||
event.setMotor(motor_t.MOTOR_C);
|
event.setMotor(motor_t.MOTOR_C);
|
||||||
event.setPower((byte)-100);
|
event.setPower((byte)-100);
|
||||||
queue.addEvent(event);
|
queue.addEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}else if(buttonCode == Ouya.BUTTON_DPAD_LEFT){
|
||||||
|
motorGamepadButtonPressed[2] = false;
|
||||||
|
|
||||||
|
if(!motorGamepadButtonPressed[3]){
|
||||||
|
event = new MotorEvent();
|
||||||
|
event.setMotor(motor_t.MOTOR_B);
|
||||||
|
event.setPower((byte)-40);
|
||||||
|
queue.addEvent(event);
|
||||||
|
}
|
||||||
|
}else if(buttonCode == Ouya.BUTTON_DPAD_RIGHT){
|
||||||
|
motorGamepadButtonPressed[3] = false;
|
||||||
|
|
||||||
|
if(!motorGamepadButtonPressed[2]){
|
||||||
|
event = new MotorEvent();
|
||||||
|
event.setMotor(motor_t.MOTOR_B);
|
||||||
|
event.setPower((byte)40);
|
||||||
|
queue.addEvent(event);
|
||||||
|
}
|
||||||
|
}else if(buttonCode == Ouya.BUTTON_L2){
|
||||||
|
motorGamepadButtonPressed[4] = false;
|
||||||
|
|
||||||
|
if(!motorGamepadButtonPressed[0]){
|
||||||
|
event = new MotorEvent();
|
||||||
|
event.setMotor(motor_t.MOTOR_A);
|
||||||
|
event.setPower((byte)100);
|
||||||
|
queue.addEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
}else if(buttonCode == Ouya.BUTTON_R2){
|
||||||
|
motorGamepadButtonPressed[5] = false;
|
||||||
|
|
||||||
|
if(!motorGamepadButtonPressed[1]){
|
||||||
|
event = new MotorEvent();
|
||||||
|
event.setMotor(motor_t.MOTOR_C);
|
||||||
|
event.setPower((byte)100);
|
||||||
|
queue.addEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -658,13 +700,13 @@ public class InGameState extends BaseState{
|
|||||||
public boolean buttonUp(Controller controller, int buttonCode){
|
public boolean buttonUp(Controller controller, int buttonCode){
|
||||||
MotorEvent event;
|
MotorEvent event;
|
||||||
|
|
||||||
if(stateActive && Ouya.runningOnOuya){
|
if(stateActive /*&& Ouya.runningOnOuya*/){
|
||||||
Gdx.app.log(TAG, CLASS_NAME + ".buttonDown() :: " + controller.getName() + " :: " + Integer.toString(buttonCode));
|
Gdx.app.log(TAG, CLASS_NAME + ".buttonDown() :: " + controller.getName() + " :: " + Integer.toString(buttonCode));
|
||||||
|
|
||||||
if(buttonCode == Ouya.BUTTON_L1){
|
if(buttonCode == Ouya.BUTTON_L1){
|
||||||
motorGamepadButtonPressed[0] = false;
|
motorGamepadButtonPressed[0] = false;
|
||||||
|
|
||||||
if(!motorGamepadButtonPressed[1]){
|
if(!motorGamepadButtonPressed[4]){
|
||||||
event = new MotorEvent();
|
event = new MotorEvent();
|
||||||
event.setMotor(motor_t.MOTOR_A);
|
event.setMotor(motor_t.MOTOR_A);
|
||||||
event.setPower((byte)0);
|
event.setPower((byte)0);
|
||||||
@@ -674,13 +716,50 @@ public class InGameState extends BaseState{
|
|||||||
}else if(buttonCode == Ouya.BUTTON_R1){
|
}else if(buttonCode == Ouya.BUTTON_R1){
|
||||||
motorGamepadButtonPressed[1] = false;
|
motorGamepadButtonPressed[1] = false;
|
||||||
|
|
||||||
if(!motorGamepadButtonPressed[0]){
|
if(!motorGamepadButtonPressed[5]){
|
||||||
event = new MotorEvent();
|
event = new MotorEvent();
|
||||||
event.setMotor(motor_t.MOTOR_C);
|
event.setMotor(motor_t.MOTOR_C);
|
||||||
event.setPower((byte)0);
|
event.setPower((byte)0);
|
||||||
queue.addEvent(event);
|
queue.addEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}else if(buttonCode == Ouya.BUTTON_DPAD_LEFT){
|
||||||
|
motorGamepadButtonPressed[2] = false;
|
||||||
|
|
||||||
|
if(!motorGamepadButtonPressed[3]){
|
||||||
|
event = new MotorEvent();
|
||||||
|
event.setMotor(motor_t.MOTOR_B);
|
||||||
|
event.setPower((byte)0);
|
||||||
|
queue.addEvent(event);
|
||||||
|
}
|
||||||
|
}else if(buttonCode == Ouya.BUTTON_DPAD_RIGHT){
|
||||||
|
motorGamepadButtonPressed[3] = false;
|
||||||
|
|
||||||
|
if(!motorGamepadButtonPressed[2]){
|
||||||
|
event = new MotorEvent();
|
||||||
|
event.setMotor(motor_t.MOTOR_B);
|
||||||
|
event.setPower((byte)0);
|
||||||
|
queue.addEvent(event);
|
||||||
|
}
|
||||||
|
}else if(buttonCode == Ouya.BUTTON_L2){
|
||||||
|
motorGamepadButtonPressed[4] = false;
|
||||||
|
|
||||||
|
if(!motorGamepadButtonPressed[0]){
|
||||||
|
event = new MotorEvent();
|
||||||
|
event.setMotor(motor_t.MOTOR_A);
|
||||||
|
event.setPower((byte)0);
|
||||||
|
queue.addEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
}else if(buttonCode == Ouya.BUTTON_R2){
|
||||||
|
motorGamepadButtonPressed[5] = false;
|
||||||
|
|
||||||
|
if(!motorGamepadButtonPressed[1]){
|
||||||
|
event = new MotorEvent();
|
||||||
|
event.setMotor(motor_t.MOTOR_C);
|
||||||
|
event.setPower((byte)0);
|
||||||
|
queue.addEvent(event);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user