Player.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package pathgame.gameplay;
  2. import pathgame.tilemap.Tile;
  3. import pathgame.tilemap.TileMap;
  4. public class Player
  5. {
  6. private static final float SPEED = 0.125f;
  7. private float lastX = 0;
  8. private float lastY = 0;
  9. private float x = 0;
  10. private float y = 0;
  11. private float velX = 0;
  12. private float velY = 0;
  13. private boolean isMoving = false;
  14. public Player()
  15. {
  16. }
  17. public float getLastX()
  18. {
  19. return lastX;
  20. }
  21. public float getLastY()
  22. {
  23. return lastY;
  24. }
  25. public float getX()
  26. {
  27. return x;
  28. }
  29. public float getY()
  30. {
  31. return y;
  32. }
  33. public void tick(TileMap map)
  34. {
  35. lastX = x;
  36. lastY = y;
  37. if(isOnTile())
  38. {
  39. velX = 0.0f;
  40. velY = 0.0f;
  41. if(isMoving)
  42. {
  43. //TODO: +Energy
  44. //Tile currTile = map.getTile((int)x,(int) y);
  45. }
  46. isMoving = false;
  47. }
  48. if(Keys.LEFT_KEY.isDown() && !isMoving && x > 0)
  49. {
  50. velX = -SPEED;
  51. isMoving = true;
  52. }
  53. else if(Keys.RIGHT_KEY.isDown() && !isMoving && x < map.getWidth() - 1)
  54. {
  55. velX = SPEED;
  56. isMoving = true;
  57. }
  58. else if(Keys.UP_KEY.isDown() && !isMoving && y > 0)
  59. {
  60. velY = -SPEED;
  61. isMoving = true;
  62. }
  63. else if(Keys.DOWN_KEY.isDown() && !isMoving && y < map.getHeight() - 1)
  64. {
  65. velY = SPEED;
  66. isMoving = true;
  67. }
  68. x += velX;
  69. y += velY;
  70. }
  71. private boolean isOnTile()
  72. {
  73. return Math.abs(x - Math.round(x)) < 0.01f && Math.abs(y - Math.round(y)) < 0.01f;
  74. }
  75. }