diff --git a/core/src/ru/deadsoftware/cavecraft/GameScreen.java b/core/src/ru/deadsoftware/cavecraft/GameScreen.java
index efdce0440b8bb2a74d179fdd6188ee211ff59671..209d32bb058b39ea8d62d5087e667ee6142e7fc6 100644 (file)
package ru.deadsoftware.cavecraft;
import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.Input;
import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.Screen;
import ru.deadsoftware.cavecraft.game.GameInputHandler;
import ru.deadsoftware.cavecraft.game.GameProc;
-import ru.deadsoftware.cavecraft.game.GameRenderer;
public class GameScreen implements Screen {
+ public static int FPS;
+
private GameProc gameProc;
private GameInputHandler gameInput;
public GameScreen() {
Assets.load();
- BlocksLoader.load();
+ Items.load();
gameProc = new GameProc();
gameInput = new GameInputHandler(gameProc);
Gdx.input.setInputProcessor(new InputHandler());
@Override
public void render(float delta) {
+ FPS = (int)(1/delta);
gameProc.update(delta);
gameProc.renderer.render();
}
@Override
public boolean keyDown(int keycode) {
- gameInput.keyDown(keycode);
+ if (keycode == Input.Keys.N) {
+ gameProc = new GameProc();
+ gameInput = new GameInputHandler(gameProc);
+ } else {
+ gameInput.keyDown(keycode);
+ }
return false;
}
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);
+ if (CaveGame.TOUCH) {
+ if (screenX > 26 && screenX < 52 &&
+ screenY > gameProc.renderer.camera.viewportHeight - 52 &&
+ screenY < gameProc.renderer.camera.viewportHeight - 26) {
+ gameInput.keyDown(Input.Keys.W);
+ } else if (screenX > 0 && screenX < 26 &&
+ screenY > gameProc.renderer.camera.viewportHeight - 26) {
+ gameInput.keyDown(Input.Keys.A);
+ } else if (screenX > 26 && screenX < 52 &&
+ screenY > gameProc.renderer.camera.viewportHeight - 26) {
+ gameInput.keyDown(Input.Keys.S);
+ } else if (screenX > 52 && screenX < 78 &&
+ screenY > gameProc.renderer.camera.viewportHeight - 26) {
+ gameInput.keyDown(Input.Keys.D);
+ } else if (screenX > 78 && screenX < 104 &&
+ screenY > gameProc.renderer.camera.viewportHeight - 26) {
+ gameInput.keyDown(Input.Keys.ALT_LEFT);
+ } else if (screenX > gameProc.renderer.camera.viewportWidth - 52 &&
+ screenX < gameProc.renderer.camera.viewportWidth - 26 &&
+ screenY > gameProc.renderer.camera.viewportHeight - 26) {
+ gameInput.touchDown(screenX, screenY, Input.Buttons.LEFT);
+ } else if (screenX > gameProc.renderer.camera.viewportWidth - 26 &&
+ screenY > gameProc.renderer.camera.viewportHeight - 26) {
+ gameInput.touchDown(screenX, screenY, Input.Buttons.RIGHT);
+ } else if (screenX > gameProc.renderer.camera.viewportWidth / 2 - 52 &&
+ screenX < gameProc.renderer.camera.viewportWidth / 2 + 52 &&
+ screenY > gameProc.renderer.camera.viewportHeight - 26) {
+ gameInput.keyDown(Input.Keys.SPACE);
+ }
+ } else {
+ gameInput.touchDown(screenX, screenY, button);
+ }
return false;
}
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);
+ if (CaveGame.TOUCH) {
+ if (screenX>26 && screenX<52 &&
+ screenY>gameProc.renderer.camera.viewportHeight-52 &&
+ screenY<gameProc.renderer.camera.viewportHeight-26) {
+ gameInput.keyUp(Input.Keys.W);
+ } else if (screenX>0 && screenX<26 &&
+ screenY>gameProc.renderer.camera.viewportHeight-26) {
+ gameInput.keyUp(Input.Keys.A);
+ } else if (screenX>26 && screenX<52 &&
+ screenY>gameProc.renderer.camera.viewportHeight-26) {
+ gameInput.keyUp(Input.Keys.S);
+ } else if (screenX>52 && screenX<78 &&
+ screenY>gameProc.renderer.camera.viewportHeight-26) {
+ gameInput.keyUp(Input.Keys.D);
+ } else if (screenX > 78 && screenX < 104 &&
+ screenY > gameProc.renderer.camera.viewportHeight - 26) {
+ gameInput.keyUp(Input.Keys.ALT_LEFT);
+ } else if (screenX > gameProc.renderer.camera.viewportWidth - 52 &&
+ screenX < gameProc.renderer.camera.viewportWidth - 26 &&
+ screenY > gameProc.renderer.camera.viewportHeight - 26) {
+ gameInput.touchUp(screenX, screenY, Input.Buttons.LEFT);
+ } else if (screenX > gameProc.renderer.camera.viewportWidth - 26 &&
+ screenY > gameProc.renderer.camera.viewportHeight - 26) {
+ gameInput.touchUp(screenX, screenY, Input.Buttons.RIGHT);
+ } else if (screenX > gameProc.renderer.camera.viewportWidth / 2 - 52 &&
+ screenX < gameProc.renderer.camera.viewportWidth / 2 + 52 &&
+ screenY > gameProc.renderer.camera.viewportHeight - 26) {
+ gameInput.keyUp(Input.Keys.SPACE);
+ }
+ } else {
+ gameInput.touchUp(screenX, screenY, button);
+ }
return false;
}