#0 

13-03-2010 14:45:28

jonath313
Abonné
Date d'inscription: 28-12-2009
Messages: 240

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


#1 

13-03-2010 15:01:40

nabouill
Abonné
Date d'inscription: 17-09-2009
Messages: 242
Corrections: 1

Je pense qu'il faudrait faire un test de collision entre la balle de ton flingue et la porte, en gros

Code c++ :


if(estEnCollision(balle, porte))
{
     laPorteEstOuverte = true;
}


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)


mes sites: www.manga-vf.fr et www.series-vf.fr

Hors ligne


#2 

14-03-2010 18:01:23

Ilovechocolat
Abonné
Date d'inscription: 07-10-2009
Messages: 125

Pour tester la collision entre deux objets tu a la technique des bounding box :

Code c++ :

mesh->getTransformedBoundingBox.intersectsWith(mesh2->getTransformedBoundingBox());


la méthode getTransformedBoundingBox se trouve dans la class ISceneNode (et donc tout ce qui en hérite).

Hors ligne


#3 

18-03-2010 14:15:15

jonath313
Abonné
Date d'inscription: 28-12-2009
Messages: 240

Bon après avoir bien rechercher j'ai trouvais une solution mais je n'arrive pas à savoir pourquoi çà ne marche pas :
J'utilise ceci :

Code:

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 :

Code:

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 smile

Hors ligne


#4 

18-03-2010 18:15:22

Ilovechocolat
Abonné
Date d'inscription: 07-10-2009
Messages: 125

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 :

Code:

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


#5 

18-03-2010 20:41:47

jonath313
Abonné
Date d'inscription: 28-12-2009
Messages: 240

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


#6 

18-03-2010 22:13:12

nabouill
Abonné
Date d'inscription: 17-09-2009
Messages: 242
Corrections: 1

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)


mes sites: www.manga-vf.fr et www.series-vf.fr

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
881 membres
1426 sujets
11116 messages
Dernier membre inscrit: Bidule
14 invités en ligne
Aucun membre connecté
RSS Feed