关于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);

原文地址:https://www.cnblogs.com/lancidie/p/1967713.html