Historique des modifications - Message

Message #8250

Sujet: Problème avec la fonction getCollisionPoint


TypeDateAuteurContenu
Dernière modification24-05-2010 13:15:57nabouill
ça vient peut-être de ton Selector. Voici un petit bout de code que j'ai utilisé qui marchait très bien, il correspond je pense exactement a ce que tu veut faire.
ps: ceci me servait d'un un test de jeu FPS quand je tirais avec un flingue, donc cette ligne s'étend droit devant. en bricolant un peut les positions tu devrais pouvoir arrivé à tes fin.

Code c++ :


vector3df start = myCamera->getPosition();// on defini un point de depart
 vector3df end = (myCamera->getTarget() - start);// et un point d'arrive
end.normalize();
 start += end*8.0f;
end = start + (end * myCamera->getFarValue());
line3d<f32> line(start, end);

triangle3df triangl;
scene::ITriangleSelector* Selector = 0;
Selector = smgr->createTerrainTriangleSelector((scene::ITerrainSceneNode*)node);
const ISceneNode* hitNode;

if(sceneMgr->getSceneCollisionManager()->getCollisionPoint(line, Selector, end, triangl,hitNode))
{
       //ça marche
}


Bon courage
Création du message24-05-2010 13:14:41nabouill
ça vient peut-être de ton Selector. Voici un petit bout de code que j'ai utilisé qui marchait très bien, il correspond je pense exactement a ce que tu veut faire.
ps: ceci me servait d'un un test de jeu FPS quand je tirais avec un flingue, donc cette ligne s'étend droit devant. en bricolant un peut les positions tu devrais pouvoir arrivé à tes fin.

Code c++ :


vector3df start = myCamera->getPosition();// on defini un point de depart
 vector3df end = (myCamera->getTarget() - start);// et un point d'arrive
end.normalize();
 start += end*8.0f;
end = start + (end * myCamera->getFarValue());
line3d<f32> line(start, end);

triangle3df triangl;
scene::ITriangleSelector* Selector = 0;
Selector = smgr->createTerrainTriangleSelector((scene::ITerrainSceneNode*)node);
const ISceneNode* hitNode;

if(sceneMgr->getSceneCollisionManager()->getCollisionPoint(line, Selector, end, triangl,hitNode))
{
       //ça marche
}


Bon courage

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
111 invités en ligne
membre en ligne: -
RSS Feed