Como codificar o projétil de uma bola de força e ângulo diferentes no Java Swing?

Eu escrevi a seguinte função para o movimento de projéteis de força e ângulo diferentes, mas não funciona corretamente. Onde eu errei? Eu quero algo como o jogo Angry Birds.

Código:

public void shootBall(int timeCounter){
    int gravity = 4;

    double time = timeCounter/40.0;
    int velocity = force_value;
    double radians = currentangle*Math.PI/180;
    ball.setX((int)((ball.getX()+10)*Math.cos(radians) + velocity*Math.cos(radians)*time));
    ball.setY((int)((ball.getY()+10)*Math.sin(radians) + velocity*Math.sin(radians)*time - 0.5*gravity*time*time));
    updateGame();
}

Quero que a bola seja lançada do canto inferior esquerdo.

questionAnswers(3)

yourAnswerToTheQuestion