Historique des modifications - Message

Message #4773

Sujet: lier une animation au deplacement d'un mesh


TypeDateAuteurContenu
Création du message09-11-2008 09:32:34ramis
salut achoura ,
merci de t'interesser à ce codesmile
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 bienwink.Bon courage pour ton projetbig_smile

Retour

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
303 invités en ligne
membre en ligne: -
RSS Feed