SpikeTile.java 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package me.hammerle.supersnuvi.tiles;
  2. import me.hammerle.snuviengine.api.Texture;
  3. import me.hammerle.supersnuvi.entity.Entity;
  4. import me.hammerle.supersnuvi.rendering.LevelRenderer;
  5. import me.hammerle.supersnuvi.util.Face;
  6. import me.hammerle.supersnuvi.gamelogic.Level;
  7. public class SpikeTile extends BaseCollisionTile
  8. {
  9. private final static Texture.Animation SPIKES = LevelRenderer.TILES.addAnimation(96, 32,
  10. "resources/spike_trap/spike_trap_frame1.png", "resources/spike_trap/spike_trap_frame2.png",
  11. "resources/spike_trap/spike_trap_frame3.png", "resources/spike_trap/spike_trap_frame4.png",
  12. "resources/spike_trap/spike_trap_frame5.png");
  13. private int counter;
  14. private int frame;
  15. public SpikeTile()
  16. {
  17. super(0.1875f, 0.0625f, 0.25f, 0.125f, Tile.SIZE * 0.1f, Tile.SIZE * 0.1f, Tile.SIZE * 0.9f, Tile.SIZE * 0.9f);
  18. counter = 0;
  19. frame = 0;
  20. }
  21. @Override
  22. public void onEntityCollide(Entity ent, int x, int y, Face face, Level l)
  23. {
  24. super.onEntityCollide(ent, x, y, face, l);
  25. if(frame >= 1)
  26. {
  27. ent.getHealth().addHealth(-42.857f);
  28. }
  29. }
  30. @Override
  31. public void tick()
  32. {
  33. counter++;
  34. if((frame == 0 && counter > 20) || (frame != 0 && counter > 5))
  35. {
  36. counter = 0;
  37. frame = (frame + 1) % 5;
  38. SPIKES.nextFrame();
  39. }
  40. }
  41. }