Bullet.java 2.0 KB

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