@Override public void draw(Graphics g) { Graphics2D g2 = (Graphics2D) g; AffineTransform at = g2.getTransform(); heading = Math.atan2(direction.x, -direction.y); g2.rotate(heading, rectangle.getCenterX(), rectangle.getCenterY()); if (boosting) { g2.drawImage(boostingImage, (int) pos.x, (int) pos.y, null); } else { g2.drawImage(image, (int) pos.x, (int) pos.y, null); } g2.setTransform(at); if (target != null) { if (target.isDead()) { target = null; return; } if (target instanceof Enemy) { g2.setColor(Color.RED); g2.draw(((Enemy) target).getRectangle()); } else { g2.setColor(Color.CYAN); g2.draw(((Item) target).getRectangle()); } } if (wasHit) { g2.setColor(new Color(0, shields >> 1, shields)); g2.drawOval((int) pos.x, (int) pos.y, rectangle.width, rectangle.height); wasHit = false; } // if(weapon instanceof Solaris) { // g2.setColor(Color.DARK_GRAY); // java.awt.Point p = getCenterPoint().getPoint(); // g2.drawLine(p.x, p.y, p.x + (int)(600*direction.x), p.y + (int)(600*direction.y)); // } }