2014-07-19 62 views
0

我試圖實現與一些食人魔::雷碰撞系統,但它似乎不工作...路口與地形

這裏的是代碼:

Ogre::Vector3 robotPos = mRobotNode->getPosition(); 
Ogre::Ray robotRay(Ogre::Vector3(robotPos.x,5000.0f,robotPos.z),Ogre::Vector3::NEGATIVE_UNIT_Y); 

mRaySceneQuery->setRay(robotRay); 
mRaySceneQuery->setSortByDistance(false); 

Ogre::RaySceneQueryResult &result = mRaySceneQuery->execute(); 
Ogre::RaySceneQueryResult::iterator itr; 

for(itr = result.begin();itr != result.end(); itr++) 
{ 
    if(itr->worldFragment) 
    { 

     Ogre::Real terrainHeight = itr->worldFragment->singleIntersection.y; 
     if(terrainHeight!=robotPos.y) 
     { 
      mRobotNode->setPosition(Ogre::Vector3(robotPos.x,terrainHeight,robotPos.z)); 
      mCameraNode->setPosition(Ogre::Vector3(robotPos.x,terrainHeight,robotPos.z)); 
      break; 
     } 
    } 
} 

此代碼是投入功能:framerenderingqueued :)

,但我的網住宿的地形

有人可以幫我在下面? :)謝謝

回答

0

爲什麼不用深入調試器?你可以意識到,在你的「if(terrainHeight!= robotPos.y)」條件下,或者你的「結果」變量裏面有零個元素,或者結果元素沒有一個具有正的「worldFragment」字段。
如果您提供有關運行時發生的事情的更多信息,可以幫助您識別問題。