1
Fork 0

Add player movement with mouse

This commit is contained in:
Joshua Goins 2022-04-30 19:21:47 -04:00
parent 5e6ffed741
commit 44d62fb515

View file

@ -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();
}