Player.java 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package model.drawObjects;
  2. import image.Images;
  3. import java.awt.BasicStroke;
  4. import java.awt.Color;
  5. import java.awt.Graphics2D;
  6. import java.awt.geom.AffineTransform;
  7. import java.awt.image.BufferedImage;
  8. import java.util.ArrayList;
  9. import java.util.Iterator;
  10. import java.util.List;
  11. import model.gameState.PlayState;
  12. import model.objects.PlayArea;
  13. public class Player extends Person {
  14. private BufferedImage img;
  15. private PlayArea path ;
  16. public List<Bullet> bullets;
  17. public Player(int x, int y,PlayArea paths){
  18. super(x,y);
  19. this.path = paths;
  20. img = Images.getImage(Images.ImageType.player2);
  21. width = img.getWidth();
  22. height = img.getHeight();
  23. bullets = new ArrayList<Bullet>();
  24. }
  25. public void draw(Graphics2D g2){//
  26. g2.drawImage(img, transform, null);
  27. g2.setStroke(new BasicStroke(5));
  28. for(Bullet b : bullets){
  29. b.draw(g2);
  30. }
  31. }
  32. public void update(){
  33. transform = new AffineTransform();
  34. transform.rotate(Math.toRadians(index*45),middlePoint.getX(),middlePoint.getY());
  35. transform.translate(middlePoint.getX() - width/2, middlePoint.getY() - height);
  36. for(Bullet b : bullets){
  37. b.update();
  38. }
  39. Iterator<Bullet> i = bullets.iterator();
  40. while(i.hasNext()){
  41. if(!PlayState.borderRect.intersectsLine(i.next().bullet)){
  42. i.remove();
  43. }
  44. }
  45. }
  46. public void addBullet(Color c){
  47. // System.out.println(index);
  48. bullets.add(new Bullet(10, c, 10, index,path.paths.get(index)));
  49. }
  50. public void removeBullet(Bullet bullet){
  51. bullets.remove(bullet);
  52. }
  53. }