Player.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package model.drawObjects;
  2. import image.Images;
  3. import java.awt.Graphics2D;
  4. import java.awt.geom.AffineTransform;
  5. import java.awt.geom.Point2D;
  6. import java.awt.image.BufferedImage;
  7. public class Player extends DrawObject {
  8. private BufferedImage img,pulse;
  9. private AffineTransform transform;
  10. private int lastindex;
  11. private Point2D middlePoint;
  12. private int subImgX,subImgY, indexCursor =0;
  13. private int subImgXBeat, indexBeat = 0;
  14. private boolean beat = false;
  15. public Player(int x, int y){
  16. img = Images.getImage(Images.ImageType.cursor);
  17. pulse = Images.getImage(Images.ImageType.pulse);
  18. width = 100;//img.getWidth();
  19. height = 100;//img.getHeight();
  20. lastindex = -10;
  21. middlePoint = new Point2D.Double(x,y);
  22. }
  23. public void draw(Graphics2D g2){//
  24. subImgX = (indexCursor % 8)*100;
  25. subImgY = (indexCursor / 8)*100;
  26. subImgXBeat = (indexBeat % 9)*100;
  27. BufferedImage subImg2 = pulse.getSubimage(subImgXBeat,0,100,100);
  28. g2.drawImage(subImg2, transform, null);
  29. BufferedImage subImg = img.getSubimage(subImgX,subImgY,100,100);
  30. g2.drawImage(subImg, transform, null);
  31. }
  32. public void update(float update){
  33. if(beat){
  34. indexBeat++;
  35. if(indexBeat >= 9)
  36. {
  37. indexBeat = 0;
  38. beat = false;
  39. }
  40. }
  41. indexCursor++;
  42. indexCursor%=32;
  43. if(lastindex != index){
  44. transform = new AffineTransform();
  45. transform.rotate(Math.toRadians(index*45),middlePoint.getX(),middlePoint.getY());
  46. transform.translate(middlePoint.getX() - width/2, middlePoint.getY() - height);
  47. lastindex = index;
  48. }
  49. }
  50. public void setBeat() {
  51. beat = true;
  52. indexBeat = 0;
  53. }
  54. }