Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: Saïcy le Septembre 06, 2014, 09:48:55 pm

Titre: Problème avec rotate et scale
Posté par: Saïcy le Septembre 06, 2014, 09:48:55 pm
Bonsoir.

Je suis tout nouveau bien que j'utilise SFML depuis des mois. Jusqu'à là j'ai réussi à résoudre mes problèmes seule mais cette fois je me lance car je suis vraiment bloqué  :-X
setRotation() ou setScale() ne donnent pas le résultat voulu.

Le problème est que ces deux fonctions bougent le sprite, alors qu'on a pas demandé de move().
Par exemple avec rotate(), le sprite ne tourne pas sur lui même mais il se décale.
Pareil avec setScale().
Que faire ?

J'ai essayé setOrigine() mais c'est pareil:
int center_x = sprite.getLocalBounds().width/2,
        center_y = sprite.getLocalBounds().height/2;
    sprite.setOrigin(center_x,center_y);
    sprite.setScale(1.5,1.5); //setRotation(angle);

Le sprite est décalé vers le haut.
Merci d'avance.
Titre: Re : Problème avec rotate et scale
Posté par: G. le Septembre 06, 2014, 10:05:44 pm
Le sprite est positionné par rapport à son origine.
Si tu changes l'origine de ton sprite alors tu le vois se décaler, forcément, puisque son origine n'est plus la même. Donc quand tu positionnes ton sprite, prends en compte que tu as défini son origine au centre, pas au coin supérieur gauche.
Titre: Re : Problème avec rotate et scale
Posté par: Saïcy le Septembre 06, 2014, 11:34:14 pm
En effet, ça marche maintenant. Merci :)