Player.java 1.5 KB

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