libgdx guided missile

Hi everyone,
newbie here so please help out if I am doing something wrong here.
I am not using Box2d.

Problem:
I made a background and a ball in middle of it. Now i want a missile to come and hit it like in the link below as I cannot get it to work.

also I want to make a array so i can have more than 1 coming at it.

I am using libGDX, I created the ball and background using a GameWorld class and a render class to render the image.
Now I did enemy ai and it works the missile homes in on the ball but the image does not rotate.

I tried all the methods but my code crashes because the missile class is being called in GameWorld class as an update and it crashes if i use and of the math methods be is atan2, cos, sin etc.

sample of my code:

// This is the Bullet class for the Homing.
public class Bullet {

private Bullet bullet;

private Vector2 position;
private Vector2 acceleration;
private Vector2 velocity;

private int width;
private int height;
private int moveSpeed = 3;

public Bullet(float x, float y, int width, int height) {
this.width = width;
this.height = height;
position = new Vector2(x, y);
acceleration = new Vector2(0, 460);
velocity = new Vector2(0, 0);
}

public void update(float delta) {

   velocity.add(position.cpy().getAngleRad(), delta);
  position.add(velocity.cpy().getAngleRad(), delta);
  
  if (GameWorld.getBall().getX() < position.x) {
     position.x -= moveSpeed;
  }
  if (GameWorld.getBall().getX() > position.x) {
     position.x += moveSpeed;
  }
  if (GameWorld.getBall().getY() < position.y) {
     position.y -= moveSpeed;
  }
  if (GameWorld.getBall().getY() > position.y) {
     position.y += moveSpeed;
  }

}

public float getX() {
return position.x;
}

public float getY() {
return position.y;
}

public float getWidth() {
return width;
}

public float getHeight() {
return height;
}
}

// this is the GameWorld class
public class GameWorld {

public static Ball ball;
private Bullet bullet;

public GameWorld() {
   Ball = new Ball(480, 273, 32, 32);
   Bullet = new Bullet(480, 130, 94, 63);
}

public void update(float delta) {
    Ball.update(delta);
    Bullet.update(delta);
}

public static Ball getBall() {
    return soldier;
}

public ScrollHandler getScroller() {
    return scroller;
}

// The game render has the batcher spriteBatcher in the constructor the cam and also Game objects are there also the assets from assetLoader where all the game animation and images are which is loaded via this.

// The gameScreen implements and in here are gameworld object and gamerenderer

I hope this is enough for the help needed.

any help will be appreciated.

Thank you in advance.

Johnny