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
;
18 gameProc
= new GameProc();
19 gameInput
= new GameInputHandler(gameProc
);
20 Gdx
.input
.setInputProcessor(new InputHandler());
23 public static int getWidth() {
24 return Gdx
.graphics
.getWidth();
27 public static int getHeight() {
28 return Gdx
.graphics
.getHeight();
37 public void render(float delta
) {
38 gameProc
.update(delta
);
39 gameProc
.renderer
.render();
43 public void resize(int width
, int height
) {
44 gameProc
.resetRenderer();
53 public void resume() {
63 public void dispose() {
67 private class InputHandler
implements InputProcessor
{
70 public boolean keyDown(int keycode
) {
71 gameInput
.keyDown(keycode
);
76 public boolean keyUp(int keycode
) {
77 gameInput
.keyUp(keycode
);
82 public boolean keyTyped(char character
) {
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();
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
);
120 gameInput
.touchDown(screenX
, screenY
, button
);
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
);
159 gameInput
.touchUp(screenX
, screenY
, button
);
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
);
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
);
181 public boolean scrolled(int amount
) {
182 gameInput
.scrolled(amount
);