In my game, I want the sprite to be able to rotate towards the mouse. However, the conventional method of atan2(dY, dX) gives bad results. I want to find out what I am doing wrong
CODE:
Calling the update cycle:
gameObj.player->update(deltaTime, sf::Mouse::getPosition(*app));
Player update code:
void player::update(float time, sf::Vector2i mousePos)
{
shipSprite.move(playerVelocity * time);
const float PI = 3.14159265;
float dX = mousePos.x - shipSprite.getPosition().x;
float dY = mousePos.y - shipSprite.getPosition().y;
float rotation = atan2(dY, dX);
rotation *= 180 / PI;
shipSprite.setRotation(rotation);
}
What happens: