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

Auteur Sujet: Comment réaliser une rotation cohérente de plusieurs sprites ?  (Lu 2433 fois)

0 Membres et 1 Invité sur ce sujet

Slash94

  • Jr. Member
  • **
  • Messages: 89
    • Voir le profil
Salut à tous,

J'aimerais savoir quelle théorie / méthode / algorithme me permettrait de créer un système de rotation de plusieurs sprites comme si ils étaient solidaires les uns des autres ?

Comme cet exemple :



(On s'en fiche du zoom, je parle de la rotation là ).

Car bien évidemment, si je modifie l'angle de chaque sprite dans une boucle, ils tourneront tous depuis leur centre ( leur origin quoi ), ce qui est logique, mais j'aimerais qu'ils tournent tous ensemble telle que sur la vidéo du dessus, une idée de la manière dont je pourrais réaliser ceci ? Merci :-)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Comment réaliser une rotation cohérente de plusieurs sprites ?
« Réponse #1 le: Octobre 22, 2017, 02:29:30 pm »
Tu as plusieurs façons de faire :

1. Tu leur donne tous la même origine (en coordonnées globales, donc différente pour chaque sprite en coordonnées locales).

2. Tu les dessines comme "enfants" d'une classe dérivée de sf::Drawable, et c'est celle-ci que tu tournes (il faut bien entendu "hériter" de la transformation du parent pour dessiner les enfants, comme montré dans le tutoriel sur les transformations).

3. Tu dessines tout sur un sf::RenderTexture et tu te retrouves avec un unique sprite qui contient tout ton bazar.
Laurent Gomila - SFML developer

Slash94

  • Jr. Member
  • **
  • Messages: 89
    • Voir le profil
Re: Comment réaliser une rotation cohérente de plusieurs sprites ?
« Réponse #2 le: Octobre 23, 2017, 03:37:03 pm »
Salut Laurent, merci à toi, c'est sympa de m'avoir répondu  ;)
J'ai réussi grâce au sf::RenderTexture ! :-D
« Modifié: Octobre 23, 2017, 03:45:51 pm par Slash94 »

 

anything