所以我已经能够使用子弹物理将刚体绑定到一个立方体并让它在渲染时掉落,但是当我试图将一个僵硬的身体“附着”到玩家时它让玩家卡在了世界,无法移动。
我最初使用的是运动体,但经过研究和尝试它们似乎是不完整的。
我最后的问题是我是否正确处理数据以更新相机的位置并更改刚体。
-Below是我用来创建刚体的代码,下面是更新两个位置的代码。
btTransform t;
t.setIdentity();
t.setOrigin(btVector3(0, 0, 0));
btCapsuleShape* player = new btCapsuleShape(1, 1);
btVector3 inertia(1, 0, 0);
player->calculateLocalInertia(20, inertia);
btMotionState* motion = new btDefaultMotionState(t);
btRigidBody::btRigidBodyConstructionInfo info(20, motion, player, inertia);
PlayerBody = new btRigidBody(info);
world->addRigidBody(PlayerBody);
bodies.push_back(PlayerBody);
PlayerBody->setAngularVelocity(btVector3(0,0,0));
更新温度体和相机位置的代码
gCamera.GetInput(window);
btVector3 t;
t = physics.PlayerBody->getLinearVelocity();
gCamera.position.x = t.getX();
gCamera.position.y = t.getY();
gCamera.position.z = t.getZ();
//Set
physics.PlayerBody->setLinearVelocity(btVector3(gCamera.position.x, gCamera.position.y, gCamera.position.z));