• Advertisement
Sign in to follow this  

Rotating a sprite toward mouse [SFML]

This topic is 1003 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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:

http://gyazo.com/5d8bf3240d030987bb0b7814029d863b

Share this post


Link to post
Share on other sites
Advertisement
Sign in to follow this  

  • Advertisement