Add abstract InputProcessor
This commit is contained in:
parent
1dd96052f9
commit
19388f2e66
@ -0,0 +1,64 @@
|
|||||||
|
package com.annimon.militaryhero;
|
||||||
|
|
||||||
|
import com.annimon.jecp.InputListener;
|
||||||
|
import com.annimon.jecp.Keys;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author aNNiMON
|
||||||
|
*/
|
||||||
|
public abstract class InputProcessor implements InputListener {
|
||||||
|
|
||||||
|
public static final int LEFT = 0, UP = 1, RIGHT = 2, DOWN = 3, FIRE = 4;
|
||||||
|
|
||||||
|
private final boolean[] dpadState;
|
||||||
|
|
||||||
|
public InputProcessor() {
|
||||||
|
dpadState = new boolean[4];
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isPressed(int dpad) {
|
||||||
|
return dpadState[dpad];
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract void isFirePressed();
|
||||||
|
|
||||||
|
public void onKeyPressed(int key) {
|
||||||
|
final int dpad = Keys.convertToDpad(key);
|
||||||
|
if (dpad == Keys.DPAD_FIRE) {
|
||||||
|
isFirePressed();
|
||||||
|
} else setDpadState(dpad, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onKeyReleased(int key) {
|
||||||
|
final int dpad = Keys.convertToDpad(key);
|
||||||
|
setDpadState(dpad, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setDpadState(int dpad, boolean state) {
|
||||||
|
switch (dpad) {
|
||||||
|
case Keys.DPAD_LEFT:
|
||||||
|
dpadState[LEFT] = state;
|
||||||
|
break;
|
||||||
|
case Keys.DPAD_UP:
|
||||||
|
dpadState[UP] = state;
|
||||||
|
break;
|
||||||
|
case Keys.DPAD_RIGHT:
|
||||||
|
dpadState[RIGHT] = state;
|
||||||
|
break;
|
||||||
|
case Keys.DPAD_DOWN:
|
||||||
|
dpadState[DOWN] = state;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onPointerPressed(int x, int y) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onPointerReleased(int x, int y) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onPointerDragged(int x, int y) {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user