Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: setPosition de la classe sf::Sprite  (Lu 1732 fois)

0 Membres et 1 Invité sur ce sujet

zedex

  • Newbie
  • *
  • Messages: 27
    • Voir le profil
setPosition de la classe sf::Sprite
« le: Septembre 11, 2013, 11:48:49 pm »
J'aimerais afficher une sprite au milieu de ma fenêtre, mais je rencontre quelques soucis. Je souhaite que cela se fasse automatiquement de la façon :
position x et y = taille fenêtre / 2 - taille sprite / 2

Seulement lorsque j'exécute les commandes comme suit pour une sprite de 32px par 32 px :
sprite.setTexture(texture);
std::cout << "sprite width = " << sprite.getScale().x << std::endl;
std::cout << "sprite heigth = " << sprite.getScale().y << std::endl;
J'obtiens :
sprite width = 1
sprite heigth = 1

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : setPosition de la classe sf::Sprite
« Réponse #1 le: Septembre 12, 2013, 01:46:02 am »
Le scale c'est le facteur d'étirement. Un sprite de 32px de large si tu lui donnes un scale de 2 fera 64px.
Si tu veux la largeur et la hauteur d'un sprite, utilise sf::Sprite::getGlobalBounds() pour récupérer le rectangle englobant du sprite, puis .width et .height de ce rectangle.
« Modifié: Septembre 12, 2013, 01:49:38 am par G. »