| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- package model.drawObjects;
- import java.awt.Color;
- import java.awt.Graphics2D;
- import java.awt.geom.Line2D;
- public class Bullet extends DrawObject {
- private double speed,lengthOfBullet;
-
- public Line2D bullet;
- private Color c;
-
- public Bullet(double speed,Color c,double lengthOfBullet,int index,Line2D path) {
- super();
- this.speed = speed;
- this.lengthOfBullet = lengthOfBullet;
- this.c = c;
- double beginX,beginY,endX,endY;
-
- beginX = path.getX2();
- beginY = path.getY2();
- endX = beginX;
- endY = beginY;
-
- //the 8 richtingen van de octagon
- switch(index){
- case 0:
- endY = beginY - lengthOfBullet;
- break;
- case 1:
- endX = beginX + lengthOfBullet;
- endY = beginY - lengthOfBullet;
- break;
- case 2:
- endX = beginX + lengthOfBullet;
- break;
- case 3:
- endX = beginX + lengthOfBullet;
- endY = beginY + lengthOfBullet;
- break;
- case 4:
- endY = beginY + lengthOfBullet;
- break;
- case 5:
- endX = beginX - lengthOfBullet;
- endY = beginY + lengthOfBullet;
- break;
- case 6:
- endX = beginX - lengthOfBullet;
- break;
- case 7:
- endX = beginX - lengthOfBullet;
- endY = beginY - lengthOfBullet;
- break;
- }
- bullet = new Line2D.Double(beginX, beginY, endX, endY);
- // System.out.println("Index: "+index);
- // System.out.println("X difference: "+(bullet.getX2()-bullet.getX1()));
- // System.out.println("Y difference: "+(bullet.getY2()-bullet.getY1()));
- }
- @Override
- public void draw(Graphics2D g2) {
- g2.setPaint(c);
- g2.draw(bullet);
- }
- @Override
- public void update() {
- double x1,x2,y1,y2,yDifference,xDifference;
- x1 = bullet.getX1();
- x2 = bullet.getX2();
- y1 = bullet.getY1();
- y2 = bullet.getY2();
- yDifference = y2 - y1;
- xDifference = x2 - x1;
-
- if(yDifference < 0.0){
- y1 -= speed;
- y2 = y1-lengthOfBullet;
- }else if(yDifference > 0.0){
- y1 += speed;
- y2 = y1+lengthOfBullet;
- }
-
- if(xDifference < 0.0){
- x1 -= speed;
- x2 = x1-lengthOfBullet;
- }else if(xDifference > 0.0){
- x1 += speed;
- x2 = x1+lengthOfBullet;
- }
-
- bullet.setLine(x1, y1, x2, y2);
- }
- public Color getColor() {
- return c;
- }
- public void setColor(Color c) {
- this.c = c;
- }
-
-
- }
|