|
|
我有一个打桩机,不想让打桩机和桩相碰撞,我用球面碰撞检测,如果离的很近的话,就让打桩机后移
代码如下:
SphereSceneQuery * pQuery=mSceneMgr->createSphereQuery(Sphere(pDzDizuo->getPosition(),5));
//执行这个查询
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")
{
Entity* ent = static_cast<Entity*>(pObject);
if(ent->getName()=="zuang11")//"zuang11"是桩的名字
{
Vector3 dizuoPos = pDzDizuo->getPosition();//pDzDizuo是打桩机节点
pDzDizuo->translate(dizuoPos.x-1,dizuoPos.y,dizuoPos.z-1);//打桩机后撤
}
}
}
}
可是运行的时候发现当碰撞发生的时候打桩机没有后撤而是下移了??????
请问大家这是什么原因造成的啊???? [em17] |
|