#0 

27-11-2009 21:22:53

supermael
Membre
Date d'inscription: 26-11-2009
Messages: 15

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 smile

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


#1 

28-11-2009 10:49:47

supermael
Membre
Date d'inscription: 26-11-2009
Messages: 15

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 smile

Hors ligne


#2 

28-11-2009 18:17:41

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

Pour ce qui est des liens de parenté, regarde du coté de l'instruction ISceneNode::setParent() cela devrait bien t'aider...


Force et sagesse...

Hors ligne


#3 

28-11-2009 18:21:17

supermael
Membre
Date d'inscription: 26-11-2009
Messages: 15

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


#4 

28-11-2009 18:30:47

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

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 ).


Force et sagesse...

Hors ligne


#5 

28-11-2009 18:35:15

supermael
Membre
Date d'inscription: 26-11-2009
Messages: 15

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


#6 

28-11-2009 18:56:16

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

J'utilise très peu les animators. Il est possible que cela soit lui qui verrouille ton truc.


Force et sagesse...

Hors ligne


#7 

28-11-2009 19:09:12

supermael
Membre
Date d'inscription: 26-11-2009
Messages: 15

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


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
48 invités en ligne
Aucun membre connecté
RSS Feed