DEADSOFTWARE

f9f42ea6969a3b19ca3dd912126f671771fa09ed
[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 public static int FPS;
14 private GameProc gameProc;
15 private GameInputHandler gameInput;
17 public GameScreen() {
18 Assets.load();
19 Items.load();
20 gameProc = new GameProc();
21 gameInput = new GameInputHandler(gameProc);
22 Gdx.input.setInputProcessor(new InputHandler());
23 }
25 public static int getWidth() {
26 return Gdx.graphics.getWidth();
27 }
29 public static int getHeight() {
30 return Gdx.graphics.getHeight();
31 }
33 @Override
34 public void show() {
36 }
38 @Override
39 public void render(float delta) {
40 FPS = (int)(1/delta);
41 gameProc.update(delta);
42 gameProc.renderer.render();
43 }
45 @Override
46 public void resize(int width, int height) {
47 gameProc.resetRenderer();
48 }
50 @Override
51 public void pause() {
53 }
55 @Override
56 public void resume() {
58 }
60 @Override
61 public void hide() {
63 }
65 @Override
66 public void dispose() {
68 }
70 private class InputHandler implements InputProcessor {
72 @Override
73 public boolean keyDown(int keycode) {
74 gameInput.keyDown(keycode);
75 return false;
76 }
78 @Override
79 public boolean keyUp(int keycode) {
80 gameInput.keyUp(keycode);
81 return false;
82 }
84 @Override
85 public boolean keyTyped(char character) {
86 return false;
87 }
89 @Override
90 public boolean touchDown(int screenX, int screenY, int pointer, int button) {
91 screenX *= gameProc.renderer.camera.viewportWidth/getWidth();
92 screenY *= gameProc.renderer.camera.viewportHeight/getHeight();
93 if (CaveGame.TOUCH) {
94 if (screenX > 26 && screenX < 52 &&
95 screenY > gameProc.renderer.camera.viewportHeight - 52 &&
96 screenY < gameProc.renderer.camera.viewportHeight - 26) {
97 gameInput.keyDown(Input.Keys.W);
98 } else if (screenX > 0 && screenX < 26 &&
99 screenY > gameProc.renderer.camera.viewportHeight - 26) {
100 gameInput.keyDown(Input.Keys.A);
101 } else if (screenX > 26 && screenX < 52 &&
102 screenY > gameProc.renderer.camera.viewportHeight - 26) {
103 gameInput.keyDown(Input.Keys.S);
104 } else if (screenX > 52 && screenX < 78 &&
105 screenY > gameProc.renderer.camera.viewportHeight - 26) {
106 gameInput.keyDown(Input.Keys.D);
107 } else if (screenX > 78 && screenX < 104 &&
108 screenY > gameProc.renderer.camera.viewportHeight - 26) {
109 gameInput.keyDown(Input.Keys.ALT_LEFT);
110 } else if (screenX > gameProc.renderer.camera.viewportWidth - 52 &&
111 screenX < gameProc.renderer.camera.viewportWidth - 26 &&
112 screenY > gameProc.renderer.camera.viewportHeight - 26) {
113 gameInput.touchDown(screenX, screenY, Input.Buttons.LEFT);
114 } else if (screenX > gameProc.renderer.camera.viewportWidth - 26 &&
115 screenY > gameProc.renderer.camera.viewportHeight - 26) {
116 gameInput.touchDown(screenX, screenY, Input.Buttons.RIGHT);
117 } else if (screenX > gameProc.renderer.camera.viewportWidth / 2 - 52 &&
118 screenX < gameProc.renderer.camera.viewportWidth / 2 + 52 &&
119 screenY > gameProc.renderer.camera.viewportHeight - 26) {
120 gameInput.keyDown(Input.Keys.SPACE);
122 } else {
123 gameInput.touchDown(screenX, screenY, button);
125 return false;
128 @Override
129 public boolean touchUp(int screenX, int screenY, int pointer, int button) {
130 screenX *= gameProc.renderer.camera.viewportWidth/getWidth();
131 screenY *= gameProc.renderer.camera.viewportHeight/getHeight();
132 if (CaveGame.TOUCH) {
133 if (screenX>26 && screenX<52 &&
134 screenY>gameProc.renderer.camera.viewportHeight-52 &&
135 screenY<gameProc.renderer.camera.viewportHeight-26) {
136 gameInput.keyUp(Input.Keys.W);
137 } else if (screenX>0 && screenX<26 &&
138 screenY>gameProc.renderer.camera.viewportHeight-26) {
139 gameInput.keyUp(Input.Keys.A);
140 } else if (screenX>26 && screenX<52 &&
141 screenY>gameProc.renderer.camera.viewportHeight-26) {
142 gameInput.keyUp(Input.Keys.S);
143 } else if (screenX>52 && screenX<78 &&
144 screenY>gameProc.renderer.camera.viewportHeight-26) {
145 gameInput.keyUp(Input.Keys.D);
146 } else if (screenX > 78 && screenX < 104 &&
147 screenY > gameProc.renderer.camera.viewportHeight - 26) {
148 gameInput.keyUp(Input.Keys.ALT_LEFT);
149 } else if (screenX > gameProc.renderer.camera.viewportWidth - 52 &&
150 screenX < gameProc.renderer.camera.viewportWidth - 26 &&
151 screenY > gameProc.renderer.camera.viewportHeight - 26) {
152 gameInput.touchUp(screenX, screenY, Input.Buttons.LEFT);
153 } else if (screenX > gameProc.renderer.camera.viewportWidth - 26 &&
154 screenY > gameProc.renderer.camera.viewportHeight - 26) {
155 gameInput.touchUp(screenX, screenY, Input.Buttons.RIGHT);
156 } else if (screenX > gameProc.renderer.camera.viewportWidth / 2 - 52 &&
157 screenX < gameProc.renderer.camera.viewportWidth / 2 + 52 &&
158 screenY > gameProc.renderer.camera.viewportHeight - 26) {
159 gameInput.keyUp(Input.Keys.SPACE);
161 } else {
162 gameInput.touchUp(screenX, screenY, button);
164 return false;
167 @Override
168 public boolean touchDragged(int screenX, int screenY, int pointer) {
169 screenX *= gameProc.renderer.camera.viewportWidth/getWidth();
170 screenY *= gameProc.renderer.camera.viewportHeight/getHeight();
171 gameInput.touchDragged(screenX, screenY);
172 return false;
175 @Override
176 public boolean mouseMoved(int screenX, int screenY) {
177 screenX *= gameProc.renderer.camera.viewportWidth/getWidth();
178 screenY *= gameProc.renderer.camera.viewportHeight/getHeight();
179 gameInput.mouseMoved(screenX,screenY);
180 return false;
183 @Override
184 public boolean scrolled(int amount) {
185 gameInput.scrolled(amount);
186 return false;