Enemy.java 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package model.drawObjects;
  2. import java.awt.Color;
  3. import java.awt.Dimension;
  4. import java.awt.Graphics2D;
  5. import java.awt.geom.Ellipse2D;
  6. import java.awt.geom.Line2D;
  7. import java.awt.geom.Point2D;
  8. public class Enemy extends Person{
  9. private Color color;
  10. private Ellipse2D.Double circle;
  11. private Point2D beginPoint;
  12. private Dimension size;
  13. private double xSpeed,ySpeed;
  14. /**
  15. *
  16. * @param path, the path the player is walking on.
  17. * @param c, the color of the enemy
  18. * @param size, the size of the enemy
  19. * @param stepsToFinishTheMiddle, the speed to finish the middle octagon
  20. */
  21. public Enemy(Line2D path,Color c,int size,double stepsToFinishTheMiddle) {
  22. super(path.getX1()-size/2,path.getY1()-size/2);
  23. beginPoint = new Point2D.Double(middlePoint.getX(),middlePoint.getY());
  24. this.size = new Dimension(size,size);
  25. color = c;
  26. circle = new Ellipse2D.Double(middlePoint.getX(),middlePoint.getY(),this.size.width,this.size.height);
  27. index = 0;
  28. xSpeed = (path.getX2() - circle.getCenterX())/stepsToFinishTheMiddle;
  29. ySpeed = (path.getY2() - circle.getCenterY())/stepsToFinishTheMiddle;
  30. }
  31. @Override
  32. public void draw(Graphics2D g2) {
  33. g2.setPaint(color);
  34. g2.fill(circle);
  35. }
  36. private void moveTowardsPlayer()
  37. {
  38. double newX, newY;
  39. newX = index*xSpeed+beginPoint.getX();
  40. newY = index*ySpeed+beginPoint.getY();
  41. index++;
  42. middlePoint.setLocation(newX, newY);
  43. circle.setFrame(middlePoint, size);
  44. }
  45. @Override
  46. public void update() {
  47. moveTowardsPlayer();
  48. }
  49. public Color getColor() {
  50. return color;
  51. }
  52. public void setColor(Color color) {
  53. this.color = color;
  54. }
  55. public Ellipse2D.Double getCircle() {
  56. return circle;
  57. }
  58. public void setCircle(Ellipse2D.Double circle) {
  59. this.circle = circle;
  60. }
  61. /**
  62. * Deze methode kijkt of de enemy is geraakt door een bullet
  63. * @param bullet, een kogel om te kijken of hij deze enemy heeft geraakt
  64. * @return, true = raakt, false = mis
  65. */
  66. public boolean bulletHitMe(Bullet bullet){
  67. if(circle.getBounds2D().intersectsLine(bullet.getBullet())){
  68. return true;
  69. }
  70. return false;
  71. }
  72. /**
  73. * Hier kijk je of de bullet de juiste kleur heeft, om de enemy te vermoorden
  74. * @param bullet, de kogel om te kije of hij de zelfde kleur heeft als deze enemy
  75. * @return,true = zelfde kleur, false = andere kleur
  76. */
  77. public boolean ColorHitMe(Bullet bullet){
  78. if(this.color.equals(bullet.getColor())){
  79. return true;
  80. }
  81. return false;
  82. }
  83. }