|
|
加载了三个模型,路面、路边的建筑物、小车
Entity *ent=mSceneMgr->createEntity("lumian","lu.mesh"); //路面加载
SceneNode* node_lumian=mSceneMgr->getRootSceneNode()->createChildSceneNode("lumian");
node_lumian->attachObject(ent);
OgreNewt::Collision* col=new OgreNewt::CollisionPrimitives::TreeCollision(m_World,node_lumian,false);
OgreNewt::Body* body_lu=new OgreNewt::Body(m_World,col);
body_lu->attachToNode(node_lumian);
delete col;
Entity *entfang=mSceneMgr->createEntity("fangzi","fang.mesh");
SceneNode* node_fang=mSceneMgr->getRootSceneNode()->createChildSceneNode("fangzi");
node_fang->attachObject(entfang);
col=new OgreNewt::CollisionPrimitives::TreeCollision(m_World,node_fang,false);
OgreNewt::Body* body_fang=new OgreNewt::Body(m_World,col);
body_fang->attachToNode(node_fang);
delete col;
Vector3 size=Ogre::Vector3(30,10,40);
Entity *entche=mSceneMgr->createEntity("chezi","car.mesh");
node_che=mSceneMgr->getRootSceneNode()->createChildSceneNode("chezi");
node_che->attachObject(entche);
node_che->yaw(Degree(8));
col=new OgreNewt::CollisionPrimitives::Box(m_World,size);
body_che=new OgreNewt::Body(m_World,col);
delete col;
Ogre::Real mass=20;
Ogre::Vector3 inertia=OgreNewt::MomentOfInertia::CalcBoxSolid(mass,size);
body_che->setMassMatrix(mass,inertia/*Vector3(10,0,10)*/);
body_che->attachToNode(node_che);
body_che->setStandardForceCallback();
body_che->setPositionOrientation(Ogre::Vector3(20,2.5,0),Ogre: uaternion::IDENTITY);
检测小车与建筑物间的碰撞,我用的是setvelocity和setomega控制小车运动,运动很正常,与建筑物斜着碰撞时也正常,但与建筑物正面碰撞时就不行,不知道为什么,哪位请指点一下,谢谢!!! |
|