ogre中使用bullet,关于碰撞的问题

91619600 2011-11-03 06:14:17
创建了一个btConvexHullShape,并把其mass值设为0(让其成为运动学刚体KinematicObject)。
当该物体静止在初始载入位置时,可以按照其形状达到预期的碰撞效果。
现在我希望手动控制这个刚体的位置,例如“挥剑”的动作,让它运动起来。
问题来了,模型的显示是正常的,但是物理碰撞的仿真体还是留在原地,就是说初始位置还是有碰撞效果,但是“剑”所到之处没有碰撞效果。
求高人解答……
...全文
295 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
91619600 2011-11-03
  • 打赏
  • 举报
回复
补充一下,我知道是没有移动碰撞仿真体的缘故。所以需要请教的就是:在哪里找到这个仿真体。
贴一些主要代码,用过OgreBullet的应该会比较熟悉
创建过程:

class Object : public Ogre::MovableObject
class RigidBody : public OgreBulletCollisions::Object

btConvexHullShape* convexShape = new btConvexHullShape();
RigidBody *sceneRigid = new RigidBody(
instanceName + "Rigid" + StringConverter::toString(mNumEntitiesInstanced),
mWorld);

SceneNode *node = mSceneMgr->getRootSceneNode ()->createChildSceneNode ();
node->attachObject (sceneEntity);

ConvexHullCollisionShape* sceneShape = new ConvexHullCollisionShape(convexShape);
sceneRigid->setShape(node, sceneShape, bodyRestitution, bodyFriction, 0);
sceneRigid->setKinematicObject(true);

mEntities.push_back(sceneEntity);
mShapes.push_back(sceneShape);
mBodies.push_back(sceneRigid);
设置位置,在frameStarted(Real elapsedTime)中
sceneRigid->setPosition(v);

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧