f9f42ea6969a3b19ca3dd912126f671771fa09ed
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 gameInput
.keyDown(keycode
);
79 public boolean keyUp(int keycode
) {
80 gameInput
.keyUp(keycode
);
85 public boolean keyTyped(char character
) {
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();
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
);
123 gameInput
.touchDown(screenX
, screenY
, button
);
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
);
162 gameInput
.touchUp(screenX
, screenY
, button
);
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
);
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
);
184 public boolean scrolled(int amount
) {
185 gameInput
.scrolled(amount
);