PageRenderTime 49ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 0ms

/PixelThrive_PT/src/com/base/engine/Animation.java

https://github.com/CanPixel/PixelThrive
Java | 43 lines | 37 code | 6 blank | 0 comment | 6 complexity | 96426ceea096cc53d62a32b739f04f89 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. package com.base.engine;
  2. public class Animation
  3. {
  4. private Texture[] frames;
  5. private int curFrame = 0, frameInt = 0;
  6. private float frameDelay;
  7. public Animation(String sheet, Vector2f spriteSize, float frameDelay, Vector2f[] frameCoords)
  8. {
  9. this.frameDelay = frameDelay;
  10. frames = new Texture[frameCoords.length];
  11. for(int i = 0; i < frameCoords.length; i++) frames[i] = new Texture(sheet, frameCoords[i].mul(spriteSize), spriteSize, false);
  12. }
  13. public void update(float delta)
  14. {
  15. if(frameInt < frameDelay) frameInt++;
  16. else
  17. {
  18. frameInt = 0;
  19. nextFrame();
  20. }
  21. }
  22. public void render(Vector2f pos, Vector2f scale, int dir)
  23. {
  24. Render.unBlur();
  25. if(dir > 0) Render.drawScaledTexturedRectangle(pos, scale, frames[curFrame]);
  26. else Render.drawXFlipScaledTexturedRectangle(pos, scale, frames[curFrame]);
  27. }
  28. private void nextFrame()
  29. {
  30. if(curFrame < frames.length - 1) curFrame++;
  31. else curFrame = 0;
  32. }
  33. public void resetAnimation()
  34. {
  35. curFrame = frameInt = 0;
  36. }
  37. }