DEADSOFTWARE

c00521f1311570106c91e8aecc5d2b4a1458238e
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / misc / InputHandlerGame.java
1 package ru.deadsoftware.cavedroid.misc;
3 import com.badlogic.gdx.Input;
4 import com.badlogic.gdx.InputProcessor;
5 import ru.deadsoftware.cavedroid.CaveGame;
6 import ru.deadsoftware.cavedroid.game.GameInput;
8 import static ru.deadsoftware.cavedroid.GameScreen.*;
10 public class InputHandlerGame implements InputProcessor {
12 private GameInput gameInput;
14 public InputHandlerGame() {
15 this.gameInput = new GameInput();
16 }
18 @Override
19 public boolean keyDown(int keycode) {
20 gameInput.keyDown(keycode);
21 return false;
22 }
24 @Override
25 public boolean keyUp(int keycode) {
26 gameInput.keyUp(keycode);
27 return false;
28 }
30 @Override
31 public boolean keyTyped(char character) {
32 return false;
33 }
35 @Override
36 public boolean touchDown(int screenX, int screenY, int pointer, int button) {
37 screenX *= GP.renderer.getWidth() / getWidth();
38 screenY *= GP.renderer.getHeight() / getHeight();
40 if (CaveGame.TOUCH) {
41 if (screenX > 26 && screenX < 52 && screenY > GP.renderer.getHeight() - 52 &&
42 screenY < GP.renderer.getHeight() - 26) {
43 if (GP.controlMode == ControlMode.CURSOR) {
44 gameInput.keyDown(Input.Keys.W);
45 } else {
46 gameInput.keyDown(Input.Keys.SPACE);
47 }
48 } else if (screenX > 0 && screenX < 26 && screenY > GP.renderer.getHeight() - 26) {
49 gameInput.keyDown(Input.Keys.A);
50 } else if (screenX > 26 && screenX < 52 && screenY > GP.renderer.getHeight() - 26) {
51 if (GP.controlMode == ControlMode.CURSOR) gameInput.keyDown(Input.Keys.S);
52 else gameInput.keyDown(Input.Keys.CONTROL_LEFT);
53 } else if (screenX > 52 && screenX < 78 && screenY > GP.renderer.getHeight() - 26) {
54 gameInput.keyDown(Input.Keys.D);
55 } else if (screenX > 78 && screenX < 104 && screenY > GP.renderer.getHeight() - 26) {
56 gameInput.keyDown(Input.Keys.ALT_LEFT);
57 } else if (screenX > GP.renderer.getWidth() - 52 && screenX < GP.renderer.getWidth() - 26 &&
58 screenY > GP.renderer.getHeight() - 26) {
59 gameInput.touchDown(screenX, screenY, Input.Buttons.LEFT);
60 } else if (screenX > GP.renderer.getWidth() - 26 && screenY > screenY - 26) {
61 gameInput.touchDown(screenX, screenY, Input.Buttons.RIGHT);
62 } else {
63 gameInput.touchDown(screenX, screenY, -1);
64 }
65 } else {
66 gameInput.touchDown(screenX, screenY, button);
67 }
68 return false;
69 }
71 @Override
72 public boolean touchUp(int screenX, int screenY, int pointer, int button) {
73 screenX *= GP.renderer.getWidth() / getWidth();
74 screenY *= GP.renderer.getHeight() / getHeight();
75 if (CaveGame.TOUCH) {
76 if (screenX > 26 && screenX < 52 && screenY > GP.renderer.getHeight() - 52 &&
77 screenY < GP.renderer.getHeight() - 26) {
78 if (GP.controlMode == ControlMode.CURSOR) gameInput.keyUp(Input.Keys.W);
79 else gameInput.keyUp(Input.Keys.SPACE);
80 } else if (screenX > 0 && screenX < 26 && screenY > GP.renderer.getHeight() - 26) {
81 gameInput.keyUp(Input.Keys.A);
82 } else if (screenX > 26 && screenX < 52 && screenY > GP.renderer.getHeight() - 26) {
83 if (GP.controlMode == ControlMode.CURSOR) gameInput.keyUp(Input.Keys.S);
84 else gameInput.keyUp(Input.Keys.CONTROL_LEFT);
85 } else if (screenX > 52 && screenX < 78 && screenY > GP.renderer.getHeight() - 26) {
86 gameInput.keyUp(Input.Keys.D);
87 } else if (screenX > 78 && screenX < 104 && screenY > GP.renderer.getHeight() - 26) {
88 gameInput.keyUp(Input.Keys.ALT_LEFT);
89 } else if (screenX > GP.renderer.getWidth() - 52 && screenX < GP.renderer.getWidth() - 26 &&
90 screenY > GP.renderer.getHeight() - 26) {
91 gameInput.touchUp(screenX, screenY, Input.Buttons.LEFT);
92 } else if (screenX > GP.renderer.getWidth() - 26 && screenY > screenY - 26) {
93 gameInput.touchUp(screenX, screenY, Input.Buttons.RIGHT);
94 } else {
95 gameInput.touchUp(screenX, screenY, -1);
96 }
97 } else {
98 gameInput.touchUp(screenX, screenY, button);
99 }
100 return false;
103 @Override
104 public boolean touchDragged(int screenX, int screenY, int pointer) {
105 screenX *= GP.renderer.getWidth() / getWidth();
106 screenY *= GP.renderer.getHeight() / getHeight();
107 if (GP.isKeyDown && (screenX > 78 || screenY < GP.renderer.getHeight() - 52)) {
108 gameInput.keyUp(GP.keyDownCode);
109 } else {
110 gameInput.touchDragged(screenX, screenY);
112 return false;
115 @Override
116 public boolean mouseMoved(int screenX, int screenY) {
117 return false;
120 @Override
121 public boolean scrolled(int amount) {
122 gameInput.scrolled(amount);
123 return false;