2010-10-28 17 views
0

Dans mon jeu, je travaille actuellement sur, j'ai seulement besoin de physique très basique, donc je ne veux pas Newton, ODE, Bullet ou similaire. Je ne veux essentiellement tomber que si aucun nœud (tous les blocs de même taille) est en dessous de moi. J'ai essayé d'envoyer un rayon de la caméra et 100.0 unités vers le bas. Mais cela donne des faux positifs.Gérer tomber en utilisant des rayons dans Irrlicht

selectedNode = NULL; 

    //Falling 
    ray.start = camera->getPosition(); 
    ray.end = vector3df(ray.start.X, ray.start.Y - 100.0f, ray.start.Z); 
    selectedNode = collMan->getSceneNodeAndCollisionPointFromRay(ray, intersection, hitTriangle, PICKABLE); 

    if(selectedNode) 
    { 
     std::cout << "ABOVE" << std::endl; 
    } 

Je ne sais pas pourquoi cela fonctionne mal. J'utilise Irrlicht, mais cela ne devrait pas vraiment importer car je pense que le problème est lié aux logiques et pas spécifiquement au moteur de rendu/moteur.

Répondre

1

irrlicht a le code source disponible. Je voudrais essayer de tracer dans le code en mode débogage et voir ce qu'il fait.