归档 2010年4月12日

最后更新于 .

在3D游戏中,碰撞检测算得上是最复杂也是最影响游戏效果的环节了,这里简单介绍一下如何在OGRE引擎里实现简单的碰撞检测。

话不多说,先贴代码:


bool EdenCollisionManager::Collide()
{
bool collide=false;
m_KeyObject=*(m_ResearchObject.begin());  // m_Keyobjects是待检测的物体(游戏角色)
Ogre::AxisAlignedBox AABB = m_KeyObject->getWorldBoundingBox(true);  // 获取包围盒
m_AABBSceneQuery->setBox(AABB);  // 以包围盒建立场景查询
m_AABBSceneQuery->setQueryMask(ENTITY_QUERY_MASK); // 设置查询标识
Ogre::SceneQueryResult& results = m_AABBSceneQuery->execute();  // 获取查询结果
Ogre::SceneQueryResultMovableList::iterator iter = results.movables.begin();
if(results.movables.empty())
return false ...

昨天

2010年4月11日

明天

2010年4月13日

归档