|
@ -4,6 +4,8 @@ public class Player { |
|
|
public Vector2 position; |
|
|
public Vector2 position; |
|
|
public Vector2 direction; |
|
|
public Vector2 direction; |
|
|
public GameManager gameManager; |
|
|
public GameManager gameManager; |
|
|
|
|
|
public Vector2 oldDirection; |
|
|
|
|
|
public Vector2 futureDirection; |
|
|
|
|
|
|
|
|
public Player(GameManager gameManager) { |
|
|
public Player(GameManager gameManager) { |
|
|
this.gameManager = gameManager; |
|
|
this.gameManager = gameManager; |
|
@ -14,23 +16,28 @@ public class Player { |
|
|
public void Spawn() { |
|
|
public void Spawn() { |
|
|
position = gameManager.map.playerSpawn; |
|
|
position = gameManager.map.playerSpawn; |
|
|
direction = new Vector2(0, -1); |
|
|
direction = new Vector2(0, -1); |
|
|
|
|
|
oldDirection = direction; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void Move() { |
|
|
public void Move() { |
|
|
Vector2 newPosition = position.Add(direction); |
|
|
Vector2 newPosition = position.Add(direction); |
|
|
|
|
|
|
|
|
boolean newPosIsWall = gameManager.map.GetCell(newPosition).type.equals("wall"); |
|
|
boolean newPosIsWall = gameManager.map.GetCell(newPosition).type.equals("wall"); |
|
|
|
|
|
|
|
|
if(!newPosIsWall) { |
|
|
if(!newPosIsWall) { |
|
|
position = newPosition; |
|
|
position = newPosition; |
|
|
} |
|
|
} |
|
|
|
|
|
else if (oldDirection != direction) { |
|
|
|
|
|
direction = oldDirection; |
|
|
|
|
|
Move(); |
|
|
|
|
|
} |
|
|
gameManager.updatePlayerCell(); |
|
|
gameManager.updatePlayerCell(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void processInput(char inputchar) { |
|
|
public void processInput(char inputchar) { |
|
|
|
|
|
|
|
|
|
|
|
oldDirection = direction; |
|
|
|
|
|
|
|
|
if(inputchar == 'w') { |
|
|
if(inputchar == 'w') { |
|
|
direction = new Vector2(0,1); |
|
|
|
|
|
|
|
|
direction = new Vector2(0,1); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
else if(inputchar == 's') { |
|
|
else if(inputchar == 's') { |
|
|