Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: zedex le Septembre 11, 2013, 11:48:49 pm

Titre: setPosition de la classe sf::Sprite
Posté par: zedex 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
Titre: Re : setPosition de la classe sf::Sprite
Posté par: G. 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() (http://www.sfml-dev.org/documentation/2.1-fr/classsf_1_1Sprite.php#a203d2d8087bfdca2ebc3c0485cdb7409) pour récupérer le rectangle englobant du sprite, puis .width et .height de ce rectangle.