0
因此,我尝试通过使用子弹物理来正确地将物理应用到游戏中的问题很多。我已经尝试过运动机构来取得成功。我现在正在努力尝试使用刚刚成功的刚体。下面粘贴的是玩家矩阵和刚体位置的更新代码。我的问题是我如何正确更新玩家的位置。使用子弹物理对玩家应用物理
更新玩家的刚体和相机的矩阵*的gCamera.matrix仅仅是投影和视图矩阵的multiplyed一起
physics.PlayerBody->getMotionState()->getWorldTransform(k);
k.getOpenGLMatrix(glm::value_ptr(gCamera.matrix));
btVector3 j;
j = physics.PlayerBody->getLinearVelocity();
gCamera.position.x = j.getX();
gCamera.position.y = j.getY();
gCamera.position.z = j.getZ();
btVector3 pastPos;
pastPos.setX(gCamera.position.x);
pastPos.setY(gCamera.position.y);
pastPos.setZ(gCamera.position.z);
gCamera.GetInput(window);
float lVelocityX = sin(gCamera.horizontalAngle * 3.14159265359/180) * 2;
float lVelocityY = physics.PlayerBody->getLinearVelocity().y();
float lVelocityZ = cos(gCamera.verticalAngle * 3.14159265359/180) * 2;
//physics.PlayerBody->setLinearVelocity(btVector3(lVelocityX, lVelocityY, lVelocityZ));
physics.PlayerBody->setLinearVelocity(btVector3(gCamera.position.x, gCamera.position.y, gCamera.position.z));
btTransform t;
t.setFromOpenGLMatrix(glm::value_ptr(gCamera.matrix));
physics.PlayerBody->getMotionState()->setWorldTransform(t);
physics.PlayerBody->setCenterOfMassTransform(t);
很难回答一个问题,其中包含一堆代码以及说明“有问题”的描述。 – paddy