幻境

Leo's Dreamland

原创 Ogre HowTo——如何让摄像机不能穿透物体收藏

新一篇: Ogre HowTo——使用声音最简单的方法 | 旧一篇: Ogre HowTo——如何鼠标点选物体

 
void moveCamera()

    mLastPosition
=mCamera->getPosition();
    mCamera
->yaw(mRotX);
    mCamera
->pitch(mRotY);
    mCamera
->moveRelative(mTranslateVector);

    
//创建一个球体查询,这里的10是m_SphereNode挂着的那个球体的半径
    SphereSceneQuery* pQuery=mSceneMgr->createSphereQuery(Sphere(mCamera->getPosition(),10));
    
//执行这个查询
    SceneQueryResult QResult=pQuery->execute();
    
//遍历查询列表找出范围内的物体
    for (std::list<MovableObject*>::iterator iter = QResult.movables.begin(); iter != QResult.movables.end();++iter)
    
{
        MovableObject
* pObject=static_cast<MovableObject*>(*iter);
        
if(pObject)
        
{
            
if(pObject->getMovableType()=="Entity")
            
{
                mCamera
->setPosition(mLastPosition);
                
//if(ent->getName()=="Head")
                
//{                    
                
//    MessageBox(NULL,"a","df",MB_OK);
                
//break;
                
//}
            }

        }

   }

}

发表于 @ 2007年07月12日 16:16:00|评论(loading...)|编辑

新一篇: Ogre HowTo——使用声音最简单的方法 | 旧一篇: Ogre HowTo——如何鼠标点选物体

评论

#Gary 发表于2008-04-07 11:06:29  IP: 218.17.227.*
我在for 下面打印(pObject->getMovableType()).c_str()
。结果只有Camera,TerrainMipMap。是不是循环中没有全部查找MovableObject...我肯定有建Entity。谢谢
发表评论  


登录
Csdn Blog version 3.1a
Copyright © Leo