#0 

02-12-2009 20:38:56

Ma77hTheG33k
Membre
Date d'inscription: 31-08-2009
Messages: 13

J'ai constaté que dans ma version d'Irrlicht (1.4), il y a quelque bugs de test de collision si par exemple, dans un pacman, on doit tester une collision entre le monstre et le pacman (je sais, encore une de mes idées bizarres de créer des jeux auparavant en 8bit en 3D tongue ) :

Code:

mesh->getBoundingBox().intersectsWithBox(mesh2->getBoundingBox());

Testez un petit code qui envoie un message sur la console quand les deux mesh sont en collision : même si les mesh sont treees éloignés, il seront quand même détectes comme "en collision". Pour y remedier, un code Treeeees simple que je met a disposition (meme en connaissant le minimum dans n'importe quel langage, on peut le trouver) cela dit, cela peut etre utile de le retouver ici.

Code:

irr::core::vector3df posCam = camera->getPosition();
irr::core::vector3df posMesh = win->getPosition();
irr::f32 diametreCollison = 1.0f;


if(posCam.X < posMesh.X + diametreCollision && posCam.X > posMesh.X - diametreCollision && posCam.Y < posMesh.Y + diametreCollision && posCam.Y > posMesh.Y - diametreCollision && posCam.Z < posMesh.Z + diametreCollision && posCam.Z > posMesh.Z - diametreCollision){
            irr::gui::IGUIWindow * message = guienv->addMessageBox(L"Niveau Supérieur !!", L"Félicitations ! Vous passez au niveau superieur !!");
            if(message->getCloseButton()->isPressed()){exit(0);}
}

diametreCollision est un float permettant de connaitre le diametre de la collision, par Exemple pour un piège placé au sol invisible, de diamètre 10.0f ou un monstre de Pacman (ralalah, décidément, je l'aime, celui la big_smile), de diametre 1.0f ou moins, ou encore un PNJ avec un champ de force autour de lui.

posCam est la position de la caméea (simple non ? ^^)

et enfin, posMesh est la position du mesh autour du quel se placera la bounding Box "faite maison". Apres, libre a vous de placer la box dans une aabox3d.

Dernière modification par Ma77hTheG33k (02-12-2009 20:54:18)

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
1427 sujets
11117 messages
Dernier membre inscrit: Bidule
50 invités en ligne
Aucun membre connecté
RSS Feed