DEADSOFTWARE

One GameProc object for everything
[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.ctrlMode == 1) gameInput.keyDown(Input.Keys.W);
44 else gameInput.keyDown(Input.Keys.SPACE);
45 } else if (screenX > 0 && screenX < 26 && screenY > GP.renderer.getHeight() - 26) {
46 gameInput.keyDown(Input.Keys.A);
47 } else if (screenX > 26 && screenX < 52 && screenY > GP.renderer.getHeight() - 26) {
48 if (GP.ctrlMode == 1) gameInput.keyDown(Input.Keys.S);
49 else gameInput.keyDown(Input.Keys.CONTROL_LEFT);
50 } else if (screenX > 52 && screenX < 78 && screenY > GP.renderer.getHeight() - 26) {
51 gameInput.keyDown(Input.Keys.D);
52 } else if (screenX > 78 && screenX < 104 && screenY > GP.renderer.getHeight() - 26) {
53 gameInput.keyDown(Input.Keys.ALT_LEFT);
54 } else if (screenX > GP.renderer.getWidth() - 52 && screenX < GP.renderer.getWidth() - 26 &&
55 screenY > GP.renderer.getHeight() - 26) {
56 gameInput.touchDown(screenX, screenY, Input.Buttons.LEFT);
57 } else if (screenX > GP.renderer.getWidth() - 26 && screenY > screenY - 26) {
58 gameInput.touchDown(screenX, screenY, Input.Buttons.RIGHT);
59 } else {
60 gameInput.touchDown(screenX, screenY, -1);
61 }
62 } else {
63 gameInput.touchDown(screenX, screenY, button);
64 }
65 return false;
66 }
68 @Override
69 public boolean touchUp(int screenX, int screenY, int pointer, int button) {
70 screenX *= GP.renderer.getWidth() / getWidth();
71 screenY *= GP.renderer.getHeight() / getHeight();
72 if (CaveGame.TOUCH) {
73 if (screenX > 26 && screenX < 52 && screenY > GP.renderer.getHeight() - 52 &&
74 screenY < GP.renderer.getHeight() - 26) {
75 if (GP.ctrlMode == 1) gameInput.keyUp(Input.Keys.W);
76 else gameInput.keyUp(Input.Keys.SPACE);
77 } else if (screenX > 0 && screenX < 26 && screenY > GP.renderer.getHeight() - 26) {
78 gameInput.keyUp(Input.Keys.A);
79 } else if (screenX > 26 && screenX < 52 && screenY > GP.renderer.getHeight() - 26) {
80 if (GP.ctrlMode == 1) gameInput.keyUp(Input.Keys.S);
81 else gameInput.keyUp(Input.Keys.CONTROL_LEFT);
82 } else if (screenX > 52 && screenX < 78 && screenY > GP.renderer.getHeight() - 26) {
83 gameInput.keyUp(Input.Keys.D);
84 } else if (screenX > 78 && screenX < 104 && screenY > GP.renderer.getHeight() - 26) {
85 gameInput.keyUp(Input.Keys.ALT_LEFT);
86 } else if (screenX > GP.renderer.getWidth() - 52 && screenX < GP.renderer.getWidth() - 26 &&
87 screenY > GP.renderer.getHeight() - 26) {
88 gameInput.touchUp(screenX, screenY, Input.Buttons.LEFT);
89 } else if (screenX > GP.renderer.getWidth() - 26 && screenY > screenY - 26) {
90 gameInput.touchUp(screenX, screenY, Input.Buttons.RIGHT);
91 } else {
92 gameInput.touchUp(screenX, screenY, -1);
93 }
94 } else {
95 gameInput.touchUp(screenX, screenY, button);
96 }
97 return false;
98 }
100 @Override
101 public boolean touchDragged(int screenX, int screenY, int pointer) {
102 screenX *= GP.renderer.getWidth() / getWidth();
103 screenY *= GP.renderer.getHeight() / getHeight();
104 if (GP.isKeyDown && (screenX > 78 || screenY < GP.renderer.getHeight() - 52)) {
105 gameInput.keyUp(GP.keyDownCode);
106 } else {
107 gameInput.touchDragged(screenX, screenY);
109 return false;
112 @Override
113 public boolean mouseMoved(int screenX, int screenY) {
114 return false;
117 @Override
118 public boolean scrolled(int amount) {
119 gameInput.scrolled(amount);
120 return false;