Add player movement with mouse
This commit is contained in:
parent
5e6ffed741
commit
44d62fb515
1 changed files with 23 additions and 2 deletions
|
@ -9,13 +9,15 @@ import com.badlogic.gdx.maps.tiled.TiledMap;
|
||||||
import com.badlogic.gdx.maps.tiled.TiledMapRenderer;
|
import com.badlogic.gdx.maps.tiled.TiledMapRenderer;
|
||||||
import com.badlogic.gdx.maps.tiled.TmxMapLoader;
|
import com.badlogic.gdx.maps.tiled.TmxMapLoader;
|
||||||
import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer;
|
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.badlogic.gdx.utils.ScreenUtils;
|
||||||
import com.redstrate.watersymbol.Player;
|
import com.redstrate.watersymbol.Player;
|
||||||
import com.redstrate.watersymbol.WaterSymbol;
|
import com.redstrate.watersymbol.WaterSymbol;
|
||||||
|
|
||||||
public class GameScreen implements Screen {
|
public class GameScreen implements Screen {
|
||||||
private final WaterSymbol game;
|
private final WaterSymbol game;
|
||||||
|
private boolean hasStartedMoving = false;
|
||||||
TiledMap tiledMap;
|
TiledMap tiledMap;
|
||||||
OrthographicCamera camera;
|
OrthographicCamera camera;
|
||||||
TiledMapRenderer tiledMapRenderer;
|
TiledMapRenderer tiledMapRenderer;
|
||||||
|
@ -49,14 +51,33 @@ public class GameScreen implements Screen {
|
||||||
public void render(float delta) {
|
public void render(float delta) {
|
||||||
ScreenUtils.clear(0, 0, 0.2f, 1);
|
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();
|
camera.update();
|
||||||
tiledMapRenderer.setView(camera);
|
tiledMapRenderer.setView(camera);
|
||||||
tiledMapRenderer.render();
|
tiledMapRenderer.render();
|
||||||
|
|
||||||
game.batch.begin();
|
game.batch.begin();
|
||||||
game.batch.setProjectionMatrix(camera.combined);
|
game.batch.setProjectionMatrix(camera.combined);
|
||||||
|
playerSprite.setPosition(player.positionX * 32, player.positionY * 32);
|
||||||
playerSprite.draw(game.batch);
|
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();
|
game.batch.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in a new issue