From c36313304bf21e827a1e41292f95205fd2e86c75 Mon Sep 17 00:00:00 2001 From: Collin Smith Date: Sun, 5 May 2019 20:52:20 -0700 Subject: [PATCH] Improved direction math to use backing MapRenderer to result in correct angle --- .../com/riiablo/map/WallAggregatorTool.java | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/tools/src/com/riiablo/map/WallAggregatorTool.java b/tools/src/com/riiablo/map/WallAggregatorTool.java index f173d41b..91279cbe 100644 --- a/tools/src/com/riiablo/map/WallAggregatorTool.java +++ b/tools/src/com/riiablo/map/WallAggregatorTool.java @@ -47,7 +47,6 @@ import com.riiablo.codec.Index; import com.riiablo.codec.Palette; import com.riiablo.codec.StringTBLs; import com.riiablo.codec.TXT; -import com.riiablo.entity.Direction; import com.riiablo.entity.Engine; import com.riiablo.entity.Entity; import com.riiablo.entity.Player; @@ -248,6 +247,7 @@ public class WallAggregatorTool extends ApplicationAdapter { final Vector2 vec2a = new Vector2(); final Vector2 vec2b = new Vector2(); + final GridPoint2 vec2c = new GridPoint2(); @Override public void render() { @@ -256,16 +256,12 @@ public class WallAggregatorTool extends ApplicationAdapter { if (Gdx.input.isTouched()) { final float VELOCITY = 16; - vec2a.set(camera.viewportWidth / 2, camera.viewportHeight / 2); - vec2b.set(Gdx.input.getX(), Gdx.input.getY()); - - vec2b.sub(vec2a).nor(); - float rad = Direction.snapToDirection(vec2b.angleRad(), 32); - vec2a.nor().setAngleRad(rad); - vec2a.scl(VELOCITY).rotate(-45); - vec2a.y = -vec2a.y; - playerBody.setLinearVelocity(vec2a); - playerBody.setTransform(playerBody.getPosition(), vec2a.angleRad()); + mapRenderer.coords(vec2c); + vec2a.set(playerBody.getPosition()); + vec2b.set(vec2c.x, -vec2c.y); + vec2b.sub(vec2a).nor().scl(VELOCITY); + playerBody.setLinearVelocity(vec2b); + playerBody.setTransform(playerBody.getPosition(), vec2b.angleRad()); } else { playerBody.setLinearVelocity(0, 0); }