@Fvirtman j'ai remplacé avec ton bout de code mais genre en fait je voudrais que le sprite tourne et qu'il reste sur place, car la quand je déplace la souris, le sprite se met a tourner, si tu ne comprends pas, je peux mettre une vidéo
oui, il regarde toujours la souris, mais en fait je voudrais qu'il la regarde et en même temps qu'il reste sur place (qu'il fasse une rotation sur lui-même)
Je pense que "l'origine" du sprite n'est pas au centre du sprite.
Je ne connais pas SFML mais beaucoup de librairies graphique mettent, par défaut, l'origine du sprite dans un des coins du sprites et donc fait une rotation "autour" de cette origine et non au "centre" du sprite.
Pouvez-vous vérifier les suppositions avec la documentation de la SFML ?
L'origine est le centre des trois autres transformations. La position est la position de l'origine, la rotation est effectuée autour de l'origine, et l'échelle est appliquée autour de l'origine également. Par défaut, l'origine est le coin haut-gauche de l'entité (son point (0, 0)), mais vous pouvez la modifier de sorte qu'elle soit le centre ou un autre coin, par exemple.
Afin que l'API reste simple, il n'y a qu'une origine pour les trois composantes de transformation. Ce qui signifie que vous ne pouvez pas, par exemple, positionner une entité relativement à son coin haut-gauche tout en la tournant autour de son centre. Si vous avez réellement besoin de faire ce genre de choses, jetez un oeil aux chapitres suivants.
// 'entity' peut être un sf::Sprite, un sf::Text, un sf::Shape ou n'importe quelle autre classe transformable
// change l'origine de l'entité
entity.setOrigin(10.f, 20.f);
// récupère l'origine de l'entité
sf::Vector2f origin = entity.getOrigin(); // = (10, 20)
Notez que le fait de changer l'origine modifie également la position de l'entité à l'écran, bien que sa propriété 'position' soit toujours la même. Si vous ne comprenez pas pourquoi, relisez ce tutoriel ! "
L'origine est le centre des trois autres transformations. La position est la position de l'origine, la rotation est effectuée autour de l'origine, et l'échelle est appliquée autour de l'origine également. Par défaut, l'origine est le coin haut-gauche de l'entité (son point (0, 0)), mais vous pouvez la modifier de sorte qu'elle soit le centre ou un autre coin, par exemple.
Afin que l'API reste simple, il n'y a qu'une origine pour les trois composantes de transformation. Ce qui signifie que vous ne pouvez pas, par exemple, positionner une entité relativement à son coin haut-gauche tout en la tournant autour de son centre. Si vous avez réellement besoin de faire ce genre de choses, jetez un oeil aux chapitres suivants.
// 'entity' peut être un sf::Sprite, un sf::Text, un sf::Shape ou n'importe quelle autre classe transformable
// change l'origine de l'entité
entity.setOrigin(10.f, 20.f);
// récupère l'origine de l'entité
sf::Vector2f origin = entity.getOrigin(); // = (10, 20)
Notez que le fait de changer l'origine modifie également la position de l'entité à l'écran, bien que sa propriété 'position' soit toujours la même. Si vous ne comprenez pas pourquoi, relisez ce tutoriel ! "
- Edité par Umbre37 il y a environ 5 heures
En effet, en mettant l'origine au milieu, on résout le soucis :)
Au pire, même si la fonction n'avait pas existé, une soustraction sur x et une autre sur y aurait fait la même chose
Cependant, je rebondis la dessus, car on a la le concept de "point chaud" d'un sprite, le point autour duquel le sprite se dessine.
C'est très intéressant quand on a des sprites ou chaque image peut être de taille très différente :)
Puisque je ne retrouve plus mon vieux tuto ici, voici un lien vers une copie sur un autre site :
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html