• Advertisement
Sign in to follow this  

Rotating a sprite to look at mouse problem - SFML

This topic is 1835 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

I just cannot fix this problem about rotating sprites around the mouse. The formula seems fine to me and it is similar to others I have googled. I just cannot figure out why it is behaveing in such a weird way.

 

void Animation::checkRotation(int x, int y, sf::Sprite& backSprite, int px, int py)
{
    yOffset = y - py;
    xOffset = x - px;
    backSprite.SetCenter(px +200, py + 400);
    a = (atan2(yOffset, xOffset)) * 180 / 3.141592;
    backSprite.SetRotation( a );
}

 

where x and y are the mouse coordinates and px and py the sprite image coordinates. I thought that maybe when the sprite rotates, the x and the y also change dynamically, in that case, would there be a solution?

 

I just need a way to get my image looking at the mouse cursor. The sprite.getCenter() doesn't work so I cannot get the center of the image coordinates. Any ideas?

 

P.S: I am using SFML 1.6

 

Share this post


Link to post
Share on other sites
Advertisement

You should not be calling SetCenter.  SetCenter sets the center point of the object, and it's relative to the object; so, typically the "center" is the upper left of the sprite (0, 0), but you could set it to (ImageWidth/2,ImageHeight/2) and the "Center" would be the center of the image.  This would then be where the "position" of the sprite used.

 

So, don't use SetCenter here; it should be used (if at all) only once when the sprite is created, unless you're doing some really specilized stuff.  Just use setPosition() and getPosition() and assume the sprite uses upper left for it's position and you'll be good.

 

Otherwise, the code looks OK.  the x and y position of the sprite should not change at all.  BTW, the sfml-dev.org forums are very good, you can always ask the SFML specific questions there too.

 

Good luck.

Share this post


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

  • Advertisement