DEADSOFTWARE

3301805e5854acafb14a33263b1e32ec447167b6
[cavedroid.git] / core / src / ru / deadsoftware / cavecraft / GameScreen.java
1 package ru.deadsoftware.cavecraft;
3 import com.badlogic.gdx.Gdx;
4 import com.badlogic.gdx.Input;
5 import com.badlogic.gdx.InputProcessor;
6 import com.badlogic.gdx.Screen;
7 import ru.deadsoftware.cavecraft.game.GameInputHandler;
8 import ru.deadsoftware.cavecraft.game.GameProc;
10 public class GameScreen implements Screen {
12 private GameProc gameProc;
13 private GameInputHandler gameInput;
15 public GameScreen() {
16 Assets.load();
17 Items.load();
18 gameProc = new GameProc();
19 gameInput = new GameInputHandler(gameProc);
20 Gdx.input.setInputProcessor(new InputHandler());
21 }
23 public static int getWidth() {
24 return Gdx.graphics.getWidth();
25 }
27 public static int getHeight() {
28 return Gdx.graphics.getHeight();
29 }
31 @Override
32 public void show() {
34 }
36 @Override
37 public void render(float delta) {
38 gameProc.update(delta);
39 gameProc.renderer.render();
40 }
42 @Override
43 public void resize(int width, int height) {
44 gameProc.resetRenderer();
45 }
47 @Override
48 public void pause() {
50 }
52 @Override
53 public void resume() {
55 }
57 @Override
58 public void hide() {
60 }
62 @Override
63 public void dispose() {
65 }
67 private class InputHandler implements InputProcessor {
69 @Override
70 public boolean keyDown(int keycode) {
71 gameInput.keyDown(keycode);
72 return false;
73 }
75 @Override
76 public boolean keyUp(int keycode) {
77 gameInput.keyUp(keycode);
78 return false;
79 }
81 @Override
82 public boolean keyTyped(char character) {
83 return false;
84 }
86 @Override
87 public boolean touchDown(int screenX, int screenY, int pointer, int button) {
88 screenX *= gameProc.renderer.camera.viewportWidth/getWidth();
89 screenY *= gameProc.renderer.camera.viewportHeight/getHeight();
90 if (CaveGame.TOUCH) {
91 if (screenX > 26 && screenX < 52 &&
92 screenY > gameProc.renderer.camera.viewportHeight - 52 &&
93 screenY < gameProc.renderer.camera.viewportHeight - 26) {
94 gameInput.keyDown(Input.Keys.W);
95 } else if (screenX > 0 && screenX < 26 &&
96 screenY > gameProc.renderer.camera.viewportHeight - 26) {
97 gameInput.keyDown(Input.Keys.A);
98 } else if (screenX > 26 && screenX < 52 &&
99 screenY > gameProc.renderer.camera.viewportHeight - 26) {
100 gameInput.keyDown(Input.Keys.S);
101 } else if (screenX > 52 && screenX < 78 &&
102 screenY > gameProc.renderer.camera.viewportHeight - 26) {
103 gameInput.keyDown(Input.Keys.D);
104 } else if (screenX > 78 && screenX < 104 &&
105 screenY > gameProc.renderer.camera.viewportHeight - 26) {
106 gameInput.keyDown(Input.Keys.ALT_LEFT);
107 } else if (screenX > gameProc.renderer.camera.viewportWidth - 52 &&
108 screenX < gameProc.renderer.camera.viewportWidth - 26 &&
109 screenY > gameProc.renderer.camera.viewportHeight - 26) {
110 gameInput.touchDown(screenX, screenY, Input.Buttons.LEFT);
111 } else if (screenX > gameProc.renderer.camera.viewportWidth - 26 &&
112 screenY > gameProc.renderer.camera.viewportHeight - 26) {
113 gameInput.touchDown(screenX, screenY, Input.Buttons.RIGHT);
114 } else if (screenX > gameProc.renderer.camera.viewportWidth / 2 - 52 &&
115 screenX < gameProc.renderer.camera.viewportWidth / 2 + 52 &&
116 screenY > gameProc.renderer.camera.viewportHeight - 26) {
117 gameInput.keyDown(Input.Keys.SPACE);
119 } else {
120 gameInput.touchDown(screenX, screenY, button);
122 return false;
125 @Override
126 public boolean touchUp(int screenX, int screenY, int pointer, int button) {
127 screenX *= gameProc.renderer.camera.viewportWidth/getWidth();
128 screenY *= gameProc.renderer.camera.viewportHeight/getHeight();
129 if (CaveGame.TOUCH) {
130 if (screenX>26 && screenX<52 &&
131 screenY>gameProc.renderer.camera.viewportHeight-52 &&
132 screenY<gameProc.renderer.camera.viewportHeight-26) {
133 gameInput.keyUp(Input.Keys.W);
134 } else if (screenX>0 && screenX<26 &&
135 screenY>gameProc.renderer.camera.viewportHeight-26) {
136 gameInput.keyUp(Input.Keys.A);
137 } else if (screenX>26 && screenX<52 &&
138 screenY>gameProc.renderer.camera.viewportHeight-26) {
139 gameInput.keyUp(Input.Keys.S);
140 } else if (screenX>52 && screenX<78 &&
141 screenY>gameProc.renderer.camera.viewportHeight-26) {
142 gameInput.keyUp(Input.Keys.D);
143 } else if (screenX > 78 && screenX < 104 &&
144 screenY > gameProc.renderer.camera.viewportHeight - 26) {
145 gameInput.keyUp(Input.Keys.ALT_LEFT);
146 } else if (screenX > gameProc.renderer.camera.viewportWidth - 52 &&
147 screenX < gameProc.renderer.camera.viewportWidth - 26 &&
148 screenY > gameProc.renderer.camera.viewportHeight - 26) {
149 gameInput.touchUp(screenX, screenY, Input.Buttons.LEFT);
150 } else if (screenX > gameProc.renderer.camera.viewportWidth - 26 &&
151 screenY > gameProc.renderer.camera.viewportHeight - 26) {
152 gameInput.touchUp(screenX, screenY, Input.Buttons.RIGHT);
153 } else if (screenX > gameProc.renderer.camera.viewportWidth / 2 - 52 &&
154 screenX < gameProc.renderer.camera.viewportWidth / 2 + 52 &&
155 screenY > gameProc.renderer.camera.viewportHeight - 26) {
156 gameInput.keyUp(Input.Keys.SPACE);
158 } else {
159 gameInput.touchUp(screenX, screenY, button);
161 return false;
164 @Override
165 public boolean touchDragged(int screenX, int screenY, int pointer) {
166 screenX *= gameProc.renderer.camera.viewportWidth/getWidth();
167 screenY *= gameProc.renderer.camera.viewportHeight/getHeight();
168 gameInput.touchDragged(screenX, screenY);
169 return false;
172 @Override
173 public boolean mouseMoved(int screenX, int screenY) {
174 screenX *= gameProc.renderer.camera.viewportWidth/getWidth();
175 screenY *= gameProc.renderer.camera.viewportHeight/getHeight();
176 gameInput.mouseMoved(screenX,screenY);
177 return false;
180 @Override
181 public boolean scrolled(int amount) {
182 gameInput.scrolled(amount);
183 return false;