AnimatedEntity.java 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package me.hammerle.supersnuvi.entity;
  2. import javafx.scene.image.Image;
  3. import me.hammerle.supersnuvi.gamelogic.Level;
  4. public class AnimatedEntity extends Entity
  5. {
  6. private int counter;
  7. private int frame;
  8. protected Image face;
  9. protected Image[] move;
  10. protected Image[] moveAir;
  11. private boolean flipped;
  12. public AnimatedEntity(Level level, double x, double y, double width, double height)
  13. {
  14. super(level, x, y, width, height);
  15. flipped = false;
  16. counter = 0;
  17. frame = 0;
  18. }
  19. @Override
  20. public boolean drawImageFlipped()
  21. {
  22. return flipped;
  23. }
  24. @Override
  25. public Image getImage()
  26. {
  27. counter++;
  28. if(counter >= 4)
  29. {
  30. counter = 0;
  31. frame++;
  32. }
  33. double motionX = getMotionX();
  34. if(isOnGround())
  35. {
  36. if(motionX != 0)
  37. {
  38. if(frame >= move.length)
  39. {
  40. frame = 0;
  41. }
  42. flipped = motionX < 0;
  43. return move[frame];
  44. }
  45. else
  46. {
  47. frame = 0;
  48. }
  49. }
  50. else
  51. {
  52. if(motionX != 0)
  53. {
  54. if(frame >= moveAir.length)
  55. {
  56. frame = 0;
  57. }
  58. flipped = motionX < 0;
  59. return moveAir[frame];
  60. }
  61. else
  62. {
  63. frame = 0;
  64. }
  65. }
  66. return super.getImage();
  67. }
  68. }