0

私が現在取り組んでいるゲームでは、非常に基本的な物理学だけが必要なので、Newton、ODE、Bulletなどは必要ありません。私は基本的に、ノード(すべて同じサイズのブロック)が私の下にない限り、落下したいだけです。カメラから100.0ユニット下に光線を送ってみました。しかし、それは誤検知をもたらします。

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;
    }

なぜこれが誤動作するのかわかりません。私はIrrlichtを使用していますが、問題は特にレンダラー/エンジンではなくロジックに関係していると思うので、それは実際には問題ではありません。

4

1 に答える 1

1

irrlichtにはソースコードがあります。デバッグモードでコードをトレースして、コードが何をしているのかを確認します。

于 2010-10-28T16:49:19.487 に答える