关于ogrebullet中角色的控制
对于角色的控制一个问题就是,是否使用角色的模型?如何控制人物的行走,旋转等?
ogrebullet没有角色控制相关的使用,那么只有从bullet那里了,进行控制了
在bullet物理引擎的介绍中有关于角色控制的一些资料,在bullet源代码中应该可以找到一个pdf
文件。里面介绍的bullet的一些使用,那么第9节 Action:Vehicles & Character Controller 里面就介绍
了一些角色控制相关的:角色或NPC可以使用一个囊状、球体或者其他相撞来代替,不想让他自动旋转,可以把
angular factor 设置为0,等等,自己去看吧,下面是我自己使用ogrebullet的时候的一些设置这里我使用囊状
// 创建一个囊状
CapsuleCollisionShape *cyliderShap = new CapsuleCollisionShape(2,6,Ogre::Vector3(0,1,0));
gBodyRigiBody = new RigidBody("PlayerBody",mWorld);
// 设置用户信息,也就是说,这个是我们自己想放什么就放什么的,我的目的是在发生碰撞的时候用这个数据来判断。
s = new std::string("PlayerBody1");
//下面是设置形状了
gBodyRigiBody->setShape(gBodyNode,cyliderShap,gDynamicBodyRestitution,0.6f,5.0f,Vector3(0,7,30),Quaternion::IDENTITY);
//绑定用户的信息就在这里了
gBodyRigiBody->getBulletRigidBody()->setUserPointer(s);
gUserPointVect.push_back(s);// 保存一下,后面要删除的
// 角色不可以转动,也不可以休眠,这样就可以让我们自己控制这个ogrebullet刚体的移动..等等了
gBodyRigiBody->getBulletRigidBody()->setAngularFactor(0);
gBodyRigiBody->getBulletRigidBody()->setSleepingThresholds(0.0,0.0);