|
|
程序如下:
建立一个robot:
void createScene(void)
{
mRobot = mSceneMgr->createEntity("Robot", "Robot.mesh");
mRobotNode = static_cast<SceneNode*>(mSceneMgr->getRootSceneNode()->createChild());
mRobotNode->attachObject(mRobot);
mRobotNode ->showBoundingBox(true);
mAdjustTerrainRaySceneQuery = mSceneMgr->createRayQuery(
Ray());
}
void CheckForTerrain()
{
mAdjustTerrainRay.setOrigin(mCamera->getPosition());
mAdjustTerrainRay.setDirection(Vector3::NEGATIVE_UNIT_Z);
mAdjustTerrainRaySceneQuery->setRay(mAdjustTerrainRay); Ogre::RaySceneQueryResult &queryResult = mAdjustTerrainRaySceneQuery->execute();
if (queryResult.size() == 0)
{
return;
}
Ogre::RaySceneQueryResult::iterator i = queryResult.begin();
for (; i != queryResult.end(); i++)
if (i->WorldFragment)
{
mCamera->setPosition(mCamera->getPosition().x,
i->worldFragment->singleIntersection.y,
mCamera->getPosition().z - 10);
}
return;
}
为什么没有与动画的机器人发生碰撞,也没有移动镜头,连i->WorldFragment都没有找到,是空,为什么? |
|