Historique des modifications - Message

Message #4773

Sujet: lier une animation au deplacement d'un mesh


Type Date Auteur Contenu
Création du message 09-11-2008 09:32:34 ramis
salut achoura ,
merci de t'interesser à ce code smile
Le principe est tout simple en fait :
  • Tu met en place ta scène , normalement
  • En paralléle ,tu écris une classe CEventReceiver , qui hérite de la classe irr::IEventReceiver .

{Cette classe doit contenir :
  • Une méthode constructeur , qui va servir tout simplement à initialiser les attributs de ta classe pour que ton personnage n'avance pas et ne marche pas.
  • Une méthode OnEvent , ici en fait , on surcharge la méthode OnEvent de IEventReceiver .Cela va servir , en cas d'évènement(en l'occurence , appui sur Z) , à indiquer que ton personnage marche , à présent .Tout simplement ;o) .Si il n'y a pas d'évenement , on indique que ton personnage ne marche plus .
  • Une méthode majPosMesh , qui va servir à mettre à jour la position du mesh .En gros , si on a déclaré que le personnage est en train de marcher dans la méthode OnEvent , on va maintenant le faire avancer régulièrement , en modifiant sa position (pour le faire avancer , il va donc falloir ajouter 1 sur l'axe X , par exemple ).Si le personnage ne marche pas , on ne fait rien .
  • Enfin , une méthode majAnimMesh , qui met à jour l'animation du mesh .Celle ci fait deux tests : si le personnage a été déclaré en train de courir dans OnEvent et que son animation n'est pas à "courir" : alors on met son animation à "courir" et on le déclare , grâce à un attribut booléen .Si le personnage n'est pas en train de courir mais que son animation est à "courir" , alors on met son animation à "ne courre pas" et on déclare que l'animation du personnage n'est plus "courir" , dans le même booléen .}


Après cela ,dans la boucle de rendu , il te suffit d'appeller à chaque fois les méthodes majPosMesh et majAnimMesh pour faire les tests à chaque frames et réagir correctement .La méthode OnEvent , étant une surcharge d'une éthode de IEventReceiver , est automatiquement appellée .

Voilà ! J'espère que c'est assez clair .Avec le code , tu devrais y arriver assez bien wink .Bon courage pour ton projet big_smile

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
191 invités en ligne
membre en ligne: -
RSS Feed