diff --git a/src/main/java/pacmanGame/Player.java b/src/main/java/pacmanGame/Player.java index 40b5e70..852b90d 100644 --- a/src/main/java/pacmanGame/Player.java +++ b/src/main/java/pacmanGame/Player.java @@ -4,7 +4,6 @@ public class Player { public Vector2 position; public Vector2 direction; public GameManager gameManager; - public Vector2 oldDirection; public Player(GameManager gameManager) { this.gameManager = gameManager; @@ -15,7 +14,6 @@ public class Player { public void Spawn() { position = gameManager.map.playerSpawn; direction = new Vector2(0, -1); - oldDirection = direction; } public void Move() { @@ -25,32 +23,36 @@ public class Player { if(!newPosIsWall) { position = newPosition; } - else if(oldDirection != direction) { - direction = oldDirection; - Move(); - } + gameManager.updatePlayerCell(); } public void processInput(char inputchar) { - oldDirection = direction; if(inputchar == 'w') { - direction = new Vector2(0,1); + checkInput(new Vector2(0,1)); } else if(inputchar == 's') { - direction = new Vector2(0,-1); + checkInput(new Vector2(0,-1)); } else if(inputchar == 'd') { - direction = new Vector2(1,0); + checkInput(new Vector2(1,0)); } else if(inputchar == 'a') { - direction = new Vector2(-1,0); + checkInput(new Vector2(-1,0)); } } + public void checkInput(Vector2 input) { + Vector2 newPosition = position.Add(input); + boolean newPosIsWall = gameManager.map.GetCell(newPosition).type.equals("wall"); + if(!newPosIsWall) { + direction = input; + } + } + }