diff --git a/core/src/ru/deadsoftware/cavecraft/GameScreen.java b/core/src/ru/deadsoftware/cavecraft/GameScreen.java
index f227302c5febd06e0ef93b1fe9c47d08f3a137f6..30382a83cf63183f947658bd251f5fce656fc9a0 100644 (file)
package ru.deadsoftware.cavecraft;
import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.Screen;
-import ru.deadsoftware.cavecraft.game.GameRenderer;
+import ru.deadsoftware.cavecraft.game.GameInputHandler;
+import ru.deadsoftware.cavecraft.game.GameProc;
public class GameScreen implements Screen {
- private GameRenderer renderer;
+ private GameProc gameProc;
+ private GameInputHandler gameInput;
public GameScreen() {
- renderer = new GameRenderer();
+ Assets.load();
+ Items.load();
+ gameProc = new GameProc();
+ gameInput = new GameInputHandler(gameProc);
+ Gdx.input.setInputProcessor(new InputHandler());
}
public static int getWidth() {
@Override
public void render(float delta) {
- renderer.render();
+ gameProc.update(delta);
+ gameProc.renderer.render();
}
@Override
public void resize(int width, int height) {
-
+ gameProc.resetRenderer();
}
@Override
public void dispose() {
}
+
+ private class InputHandler implements InputProcessor {
+
+ @Override
+ public boolean keyDown(int keycode) {
+ gameInput.keyDown(keycode);
+ return false;
+ }
+
+ @Override
+ public boolean keyUp(int keycode) {
+ gameInput.keyUp(keycode);
+ return false;
+ }
+
+ @Override
+ public boolean keyTyped(char character) {
+ return false;
+ }
+
+ @Override
+ public boolean touchDown(int screenX, int screenY, int pointer, int button) {
+ screenX *= gameProc.renderer.camera.viewportWidth/getWidth();
+ screenY *= gameProc.renderer.camera.viewportHeight/getHeight();
+ gameInput.touchDown(screenX, screenY, button);
+ return false;
+ }
+
+ @Override
+ public boolean touchUp(int screenX, int screenY, int pointer, int button) {
+ screenX *= gameProc.renderer.camera.viewportWidth/getWidth();
+ screenY *= gameProc.renderer.camera.viewportHeight/getHeight();
+ gameInput.touchUp(screenX, screenY, button);
+ return false;
+ }
+
+ @Override
+ public boolean touchDragged(int screenX, int screenY, int pointer) {
+ screenX *= gameProc.renderer.camera.viewportWidth/getWidth();
+ screenY *= gameProc.renderer.camera.viewportHeight/getHeight();
+ gameInput.touchDragged(screenX, screenY);
+ return false;
+ }
+
+ @Override
+ public boolean mouseMoved(int screenX, int screenY) {
+ screenX *= gameProc.renderer.camera.viewportWidth/getWidth();
+ screenY *= gameProc.renderer.camera.viewportHeight/getHeight();
+ gameInput.mouseMoved(screenX,screenY);
+ return false;
+ }
+
+ @Override
+ public boolean scrolled(int amount) {
+ gameInput.scrolled(amount);
+ return false;
+ }
+ }
}