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