Pages: 1
Bonjour,
Voila je commence à vraiment saturer de perdre mon temps à faire des camera->getPosition() pour tester la position du joueur et faire réagir certains éléments en fonction de cela.
J'ai fait une classe interActionArme qui gére le tire et l'impact de mon flingue avec la map et tout ce qui est lier à la map et je voudrais tester dans ma classe jeu.cpp si je tire sur ce node alors la porte s'ouvre par exemple.
Est-ce que je peut réaliser ce test if( ....) { ouvrirPorte == true;} ?
Que dois je mettre dans les parenthéses ?
merci bien !
Hors ligne
Je pense qu'il faudrait faire un test de collision entre la balle de ton flingue et la porte, en gros
mais il faut bien sur codé la fonction "bool estEnCollision(ISceneNode *element1, ISceneNode *element2)"
Dernière modification par nabouill (13-03-2010 15:02:04)
Hors ligne
Pour tester la collision entre deux objets tu a la technique des bounding box :
la méthode getTransformedBoundingBox se trouve dans la class ISceneNode (et donc tout ce qui en hérite).
Hors ligne
Bon après avoir bien rechercher j'ai trouvais une solution mais je n'arrive pas à savoir pourquoi çà ne marche pas :
J'utilise ceci :
virtual bool irr::scene::ISceneCollisionManager::getCollisionPoint ( const core::line3d< f32 > & ray, ITriangleSelector * selector, core::vector3df & outCollisionPoint, core::triangle3df & outTriangle, const ISceneNode *& outNode ) [pure virtual]
Et mon code est :
if (sceneManager->getSceneCollisionManager()->irr::scene::ISceneCollisionManager::getCollisionPoint(line , meta, 10, tri, Ncaisse)) { // code }
L'erreur est :
error no matching fonction call to ' irr::scene::ISceneCollisionManager::getCollisionPoint ( const core::line3d< f32 > & ray, ITriangleSelector * selector, core::vector3df & outCollisionPoint, core::triangle3df & outTriangle, const ISceneNode *& outNode ) '
merci pour votre aide
Hors ligne
Euh, tu est sur que c'est une bien l'erreur qu'il te donne, car a ma connaissance aucuns compilo n'est capable de retrouver le nom des variables, il devrait plutôt de donner un truc comme ça :
error no matching fonction call to ' irr::scene::ISceneCollisionManager::getCollisionPoint (const core::line3d< f32 >, ITriangleSelector*, core::vector3df, core::triangle3df, const ISceneNode*) '
Est tu sur que c'est vraiment l'erreur qu'il te donne ?
Et il faudrait aussi avoir plus de code parce que des variables, c'est pas super précis .
Dernière modification par Ilovechocolat (18-03-2010 18:16:18)
Hors ligne
oui je suis certain mais pourtant je pensais avoir bien rempli les paramétres de la fonction je ne vois pas pourquoi il me dit çà !!!
Hors ligne
ton 3em paramètre
tu lui envoie un "10", alors que lui il veut un "vector3df"
Dernière modification par nabouill (18-03-2010 22:13:31)
Hors ligne
Pages: 1