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
;
20 gameProc
= new GameProc();
21 gameInput
= new GameInputHandler(gameProc
);
22 Gdx
.input
.setInputProcessor(new InputHandler());
25 public static int getWidth() {
26 return Gdx
.graphics
.getWidth();
29 public static int getHeight() {
30 return Gdx
.graphics
.getHeight();
39 public void render(float delta
) {
41 gameProc
.update(delta
);
42 gameProc
.renderer
.render();
46 public void resize(int width
, int height
) {
47 gameProc
.resetRenderer();
56 public void resume() {
66 public void dispose() {
70 private class InputHandler
implements InputProcessor
{
73 public boolean keyDown(int keycode
) {
74 if (keycode
== Input
.Keys
.N
) {
75 gameProc
= new GameProc();
76 gameInput
= new GameInputHandler(gameProc
);
78 gameInput
.keyDown(keycode
);
84 public boolean keyUp(int keycode
) {
85 gameInput
.keyUp(keycode
);
90 public boolean keyTyped(char character
) {
95 public boolean touchDown(int screenX
, int screenY
, int pointer
, int button
) {
96 screenX
*= gameProc
.renderer
.camera
.viewportWidth
/getWidth();
97 screenY
*= gameProc
.renderer
.camera
.viewportHeight
/getHeight();
99 if (screenX
> 26 && screenX
< 52 &&
100 screenY
> gameProc
.renderer
.camera
.viewportHeight
- 52 &&
101 screenY
< gameProc
.renderer
.camera
.viewportHeight
- 26) {
102 gameInput
.keyDown(Input
.Keys
.W
);
103 } else if (screenX
> 0 && screenX
< 26 &&
104 screenY
> gameProc
.renderer
.camera
.viewportHeight
- 26) {
105 gameInput
.keyDown(Input
.Keys
.A
);
106 } else if (screenX
> 26 && screenX
< 52 &&
107 screenY
> gameProc
.renderer
.camera
.viewportHeight
- 26) {
108 gameInput
.keyDown(Input
.Keys
.S
);
109 } else if (screenX
> 52 && screenX
< 78 &&
110 screenY
> gameProc
.renderer
.camera
.viewportHeight
- 26) {
111 gameInput
.keyDown(Input
.Keys
.D
);
112 } else if (screenX
> 78 && screenX
< 104 &&
113 screenY
> gameProc
.renderer
.camera
.viewportHeight
- 26) {
114 gameInput
.keyDown(Input
.Keys
.ALT_LEFT
);
115 } else if (screenX
> gameProc
.renderer
.camera
.viewportWidth
- 52 &&
116 screenX
< gameProc
.renderer
.camera
.viewportWidth
- 26 &&
117 screenY
> gameProc
.renderer
.camera
.viewportHeight
- 26) {
118 gameInput
.touchDown(screenX
, screenY
, Input
.Buttons
.LEFT
);
119 } else if (screenX
> gameProc
.renderer
.camera
.viewportWidth
- 26 &&
120 screenY
> gameProc
.renderer
.camera
.viewportHeight
- 26) {
121 gameInput
.touchDown(screenX
, screenY
, Input
.Buttons
.RIGHT
);
122 } else if (screenX
> gameProc
.renderer
.camera
.viewportWidth
/ 2 - 52 &&
123 screenX
< gameProc
.renderer
.camera
.viewportWidth
/ 2 + 52 &&
124 screenY
> gameProc
.renderer
.camera
.viewportHeight
- 26) {
125 gameInput
.keyDown(Input
.Keys
.SPACE
);
128 gameInput
.touchDown(screenX
, screenY
, button
);
134 public boolean touchUp(int screenX
, int screenY
, int pointer
, int button
) {
135 screenX
*= gameProc
.renderer
.camera
.viewportWidth
/getWidth();
136 screenY
*= gameProc
.renderer
.camera
.viewportHeight
/getHeight();
137 if (CaveGame
.TOUCH
) {
138 if (screenX
>26 && screenX
<52 &&
139 screenY
>gameProc
.renderer
.camera
.viewportHeight
-52 &&
140 screenY
<gameProc
.renderer
.camera
.viewportHeight
-26) {
141 gameInput
.keyUp(Input
.Keys
.W
);
142 } else if (screenX
>0 && screenX
<26 &&
143 screenY
>gameProc
.renderer
.camera
.viewportHeight
-26) {
144 gameInput
.keyUp(Input
.Keys
.A
);
145 } else if (screenX
>26 && screenX
<52 &&
146 screenY
>gameProc
.renderer
.camera
.viewportHeight
-26) {
147 gameInput
.keyUp(Input
.Keys
.S
);
148 } else if (screenX
>52 && screenX
<78 &&
149 screenY
>gameProc
.renderer
.camera
.viewportHeight
-26) {
150 gameInput
.keyUp(Input
.Keys
.D
);
151 } else if (screenX
> 78 && screenX
< 104 &&
152 screenY
> gameProc
.renderer
.camera
.viewportHeight
- 26) {
153 gameInput
.keyUp(Input
.Keys
.ALT_LEFT
);
154 } else if (screenX
> gameProc
.renderer
.camera
.viewportWidth
- 52 &&
155 screenX
< gameProc
.renderer
.camera
.viewportWidth
- 26 &&
156 screenY
> gameProc
.renderer
.camera
.viewportHeight
- 26) {
157 gameInput
.touchUp(screenX
, screenY
, Input
.Buttons
.LEFT
);
158 } else if (screenX
> gameProc
.renderer
.camera
.viewportWidth
- 26 &&
159 screenY
> gameProc
.renderer
.camera
.viewportHeight
- 26) {
160 gameInput
.touchUp(screenX
, screenY
, Input
.Buttons
.RIGHT
);
161 } else if (screenX
> gameProc
.renderer
.camera
.viewportWidth
/ 2 - 52 &&
162 screenX
< gameProc
.renderer
.camera
.viewportWidth
/ 2 + 52 &&
163 screenY
> gameProc
.renderer
.camera
.viewportHeight
- 26) {
164 gameInput
.keyUp(Input
.Keys
.SPACE
);
167 gameInput
.touchUp(screenX
, screenY
, button
);
173 public boolean touchDragged(int screenX
, int screenY
, int pointer
) {
174 screenX
*= gameProc
.renderer
.camera
.viewportWidth
/getWidth();
175 screenY
*= gameProc
.renderer
.camera
.viewportHeight
/getHeight();
176 gameInput
.touchDragged(screenX
, screenY
);
181 public boolean mouseMoved(int screenX
, int screenY
) {
182 screenX
*= gameProc
.renderer
.camera
.viewportWidth
/getWidth();
183 screenY
*= gameProc
.renderer
.camera
.viewportHeight
/getHeight();
184 gameInput
.mouseMoved(screenX
,screenY
);
189 public boolean scrolled(int amount
) {
190 gameInput
.scrolled(amount
);