diff --git a/core/src/com/redstrate/watersymbol/screens/GameScreen.java b/core/src/com/redstrate/watersymbol/screens/GameScreen.java index 15cf4ec..2675b6a 100644 --- a/core/src/com/redstrate/watersymbol/screens/GameScreen.java +++ b/core/src/com/redstrate/watersymbol/screens/GameScreen.java @@ -9,13 +9,15 @@ import com.badlogic.gdx.maps.tiled.TiledMap; import com.badlogic.gdx.maps.tiled.TiledMapRenderer; import com.badlogic.gdx.maps.tiled.TmxMapLoader; import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer; +import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.math.Vector3; import com.badlogic.gdx.utils.ScreenUtils; import com.redstrate.watersymbol.Player; import com.redstrate.watersymbol.WaterSymbol; public class GameScreen implements Screen { private final WaterSymbol game; - + private boolean hasStartedMoving = false; TiledMap tiledMap; OrthographicCamera camera; TiledMapRenderer tiledMapRenderer; @@ -49,14 +51,33 @@ public class GameScreen implements Screen { public void render(float delta) { ScreenUtils.clear(0, 0, 0.2f, 1); - camera.position.set(player.positionX, player.positionY, 0); + camera.position.set(player.positionX * 32, player.positionY * 32, 0); camera.update(); tiledMapRenderer.setView(camera); tiledMapRenderer.render(); game.batch.begin(); game.batch.setProjectionMatrix(camera.combined); + playerSprite.setPosition(player.positionX * 32, player.positionY * 32); playerSprite.draw(game.batch); + + // player is trying to move + if(Gdx.input.isButtonPressed(0)) { + hasStartedMoving = true; + } else if(hasStartedMoving) { + Vector3 mousePos = new Vector3(Gdx.input.getX(), Gdx.input.getY(), 0); + + camera.unproject(mousePos); + + double newX = Math.floor(mousePos.x); + double newY = Math.floor(mousePos.y); + + player.positionX = (int) (newX / 32.0); + player.positionY = (int) (newY / 32.0); + + hasStartedMoving = false; + } + game.batch.end(); }