Welcome, Guest. Please login or register. Did you miss your activation email?

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - PanZWarzywniaka

Pages: [1]
1
Graphics / Transformations igrnores sf::Sprite's origin
« on: April 24, 2020, 06:15:27 pm »
Transforming a sprite, does not regard it's new origin.

In my case sf::Sprite is rotating around the axis that is in the left top corner ({0,0}) regardless its origin. Setting new origin with .setOrigin() earlier takes no effect.

My code:

In each of my Card class constructors I set the origin of my sprite.

card_sprite.setOrigin(Card::get_default_single_card_size().x*Game::get_scale()/2,Card::get_default_single_card_size().y*Game::get_scale()/2);
 

And then in my Deck class which behaves like std::stack of Cards I use function:

void Deck::push(const Card& crd)
{
    push_back(crd);
    ..//
    std::default_random_engine generator;
    std::uniform_real_distribution<float> distributor(0,360);
    top().setRotation(distributor(generator));
}
 

Card::setRotaion() looks like this, (which a I said still rotates card around top left corner):

void Card::setRotation(float angle)
{
    card_sprite.setRotation(angle);
}
 

Thanks for help in advance.

Pages: [1]