c'est certainement un question bete, mais j'ai du mal a trouver une solution simple pour le probleme suivant :
j'ai une map pas plate, et je voudrais que lorsqu'un mesh se déplace dessus, il suive les évolutions du terrain, monte lorsqu'il y a une pente, etc ..
faut il laisser la "gravité Irrlicht" se charger de trouver la bonne position de l'objet ? dans ce cas comment fait on pour déplacer l'objet,
ou alors doit on forcément savoir quelque par quel est l'angle du terrain et sa hauteur, afin de faire le "setposition" au bon endroit ?
sinon, peut etre qu'un topic conception, ou architecture serai sympa pour ce genre de question non ? c'est quand meme relativement éloigné du C++
Bonne Soirée
Hors ligne
Salut,
Regarde avec ça :
Height = terrain->getHeight(Position de mon Objet X, Position de mon Objet Z);
MonObjet->SetPosition(core::vector3df(Position de mon Objet X,Height+Ma Hauteur Au Dessus,Position de mon Objet Z));
Hors ligne
merci pour le code
j'ai une autre question, si je veux que son inclinaison suive ? par exemple si le terrain a une forte pente, un véhicule apparait avec de l'inclinaison ?
il y a une méthode pour récuperer le vecteur normal du terrain a cet endroit la ? je n'ai rien trouvé dans la classe terrain,
Hors ligne
Hello, alors pour ça t'a une solution qui me parrait la mieux adapté, sauf erreur de ma par.
Tu peux utiliser le code de l'exemple Collision du SDK dans lequel tu verras un truc du genre :
core::vector3df intersection;
core::triangle3df tri;
if (smgr->getSceneCollisionManager()->getCollisionPoint(line, selector, intersection, tri))
{//blablabla;}
Et là tu peux donc récup le Triangle "tri" en collision et par conséquent, je présume récupérer la normale de se triangle grace à getNormal ().
En fonction de la normale tu n'as plus qu'a aligner ton objet en rotation.
Je suis pas certains mais je m'attaquerai à ça de cette manière .
@+
Hors ligne
pour info, je crois que la méthode
virtual f32 irr::scene::ITerrainSceneNode::getHeight ( f32 x,f32 y )
n'existe pas dans irrlicht 1.1
‘class irr::scene::ITerrainSceneNode’ has no member named ‘getHeight'
j'ai regardé dans le .h dans le dossier include et ya pas de méthode getHeight, par contre il est bien dans la 1.2, vive la 1.2 !
Dernière modification par Jerry Kan (26-12-2006 11:31:08)
Hors ligne