Bonsoir,
je refait en ce moment un jeu, un labyrinthe 3D, sous irrlicht. Programmé en openGL, j'ai fini par atteindre un jeu bien sympathique, mais mon niveau de programmation ne me permettent pas d'aller plus loin pour le moment. Je passe donc sur irrlicht pour faire un remake. Je charge mes map, avec des pièges etc et commence à mettre en place toutes les interactions (la plus grosse partie).
Maintenant, j'aimerais que quand le joueur arrive sur la case de fin du niveau (c'est un labyrinthe), le jeu passe de niveau (ou du moins que le jeu se ferme pour le moment, vu qu'il n'y a qu'une seule map). Je dois donc pour cela savoir quand le joueur entre en collision avec la case de fin de niveau.
J'ai donc cherché du côté de getCollisionNode, mais je ne comprends pas vraiment comment l'utiliser. Comment alors savoir si mon node principal (la caméra) entre en collision avec cette case de fin ?
Si quelqu'un peut m'aider, ou du moins a une piste pour m'aider à résoudre le problème se serait sympa
Merci d'avance,
supermael.
PS : Et pour ceux que ça intéresse :
Présentation de Exit, mon jeu
Dernière modification par supermael (27-11-2009 21:23:42)
Hors ligne
Mon problème est résolu en partie, il me manque une petite question :
-j'ai un node en mouvement (une plateforme). J'aimerai que quand la caméra (le perso principal) monte dessus, il bouge avec cette plateforme, et pas qu'il reste figée avec les plateforme qui lui glisse sous les pieds. J'ai pensé à ajouter la camera comme enfant de la plateforme, mais je ne sais pas comment m'y prendre, et comment l'annuler lorsque la caméra quitte la plateforme. Une deuxième solution était d'assigner à la caméra l'anim de la plateforme, mais pareil je ne sais pas vraiment comment l'annuler et si ça marchera.
Merci d'avance
Hors ligne
Pour ce qui est des liens de parenté, regarde du coté de l'instruction ISceneNode::setParent() cela devrait bien t'aider...
Hors ligne
J'ai fait nodePlateforme->addChild (camera). Si faire setParent revient au même, alors ça ne marche pas :x la caméra ne peut plus bouger.
Hors ligne
As-tu la partie du code pour voir comment tu t'y prend ?
En théorie, un node affilié à un autre garde sa liberté de déplacement ( heureusement ).
Hors ligne
Alors, je met d'abord un animator à la plateforme (createFlyStraightAnimator), puis je dis que quand la position de la caméra est comprise entre positionPlateforme -5 et positionPlateforme +5 (en X et Z) alors la camera est un enfant de la plateforme. Quand elle en sort, elle redevient un sceneNode du root (le sceneNode principal, je sais pas comment l'appeler ^^"). J'ai effacé le code je te le repost si tu en as besoin après les explications.
Hors ligne
J'utilise très peu les animators. Il est possible que cela soit lui qui verrouille ton truc.
Hors ligne
Ok :x je vais voir, j'essaierai autre chose après alors. Pour le moment je vais faire sans, merci quand même ^^"
Hors ligne