Bullet.java 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package model.drawObjects;
  2. import java.awt.Color;
  3. import java.awt.Graphics2D;
  4. import java.awt.geom.Line2D;
  5. public class Bullet extends DrawObject {
  6. private double speed,lengthOfBullet;
  7. public Line2D bullet;
  8. private Color c;
  9. public Bullet(double speed,Color c,double lengthOfBullet,int index,Line2D path) {
  10. super();
  11. this.speed = speed;
  12. this.lengthOfBullet = lengthOfBullet;
  13. this.c = c;
  14. double beginX,beginY,endX,endY;
  15. beginX = path.getX2();
  16. beginY = path.getY2();
  17. endX = beginX;
  18. endY = beginY;
  19. //the 8 richtingen van de octagon
  20. switch(index){
  21. case 0:
  22. endY = beginY - lengthOfBullet;
  23. break;
  24. case 1:
  25. endX = beginX + lengthOfBullet;
  26. endY = beginY - lengthOfBullet;
  27. break;
  28. case 2:
  29. endX = beginX + lengthOfBullet;
  30. break;
  31. case 3:
  32. endX = beginX + lengthOfBullet;
  33. endY = beginY + lengthOfBullet;
  34. break;
  35. case 4:
  36. endY = beginY + lengthOfBullet;
  37. break;
  38. case 5:
  39. endX = beginX - lengthOfBullet;
  40. endY = beginY + lengthOfBullet;
  41. break;
  42. case 6:
  43. endX = beginX - lengthOfBullet;
  44. break;
  45. case 7:
  46. endX = beginX - lengthOfBullet;
  47. endY = beginY - lengthOfBullet;
  48. break;
  49. }
  50. bullet = new Line2D.Double(beginX, beginY, endX, endY);
  51. // System.out.println("Index: "+index);
  52. // System.out.println("X difference: "+(bullet.getX2()-bullet.getX1()));
  53. // System.out.println("Y difference: "+(bullet.getY2()-bullet.getY1()));
  54. }
  55. @Override
  56. public void draw(Graphics2D g2) {
  57. g2.setPaint(c);
  58. g2.draw(bullet);
  59. }
  60. @Override
  61. public void update() {
  62. double x1,x2,y1,y2,yDifference,xDifference;
  63. x1 = bullet.getX1();
  64. x2 = bullet.getX2();
  65. y1 = bullet.getY1();
  66. y2 = bullet.getY2();
  67. yDifference = y2 - y1;
  68. xDifference = x2 - x1;
  69. if(yDifference < 0.0){
  70. y1 -= speed;
  71. y2 = y1-lengthOfBullet;
  72. }else if(yDifference > 0.0){
  73. y1 += speed;
  74. y2 = y1+lengthOfBullet;
  75. }
  76. if(xDifference < 0.0){
  77. x1 -= speed;
  78. x2 = x1-lengthOfBullet;
  79. }else if(xDifference > 0.0){
  80. x1 += speed;
  81. x2 = x1+lengthOfBullet;
  82. }
  83. bullet.setLine(x1, y1, x2, y2);
  84. }
  85. public Color getColor() {
  86. return c;
  87. }
  88. public void setColor(Color c) {
  89. this.c = c;
  90. }
  91. }