Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Can';t更新连接到Ogre3D实体的项目符号刚体位置_C++_Ogre_Bulletphysics_Ogre3d_Bullet - Fatal编程技术网

C++ Can';t更新连接到Ogre3D实体的项目符号刚体位置

C++ Can';t更新连接到Ogre3D实体的项目符号刚体位置,c++,ogre,bulletphysics,ogre3d,bullet,C++,Ogre,Bulletphysics,Ogre3d,Bullet,我正在使用Ogre3D和Kinect制作一个游戏。 食人魔中的化身由kinect控制。现在我想实现物理,但我遇到了Bullet的问题 我已经用成对的刚体“连接”了实体 std::向量动态对象; 向量静态对象; 我很容易让我的食人魔遵循这样的刚体: for(int i=0;igetMotionState()->getWorldTransform(tr); btVector3 pos=tr.getOrigin(); btQuaternion qut=tr.getRotation(); dynami

我正在使用Ogre3D和Kinect制作一个游戏。 食人魔中的化身由kinect控制。现在我想实现物理,但我遇到了Bullet的问题

我已经用成对的刚体“连接”了实体

std::向量动态对象;
向量静态对象;
我很容易让我的食人魔遵循这样的刚体:

for(int i=0;igetMotionState()->getWorldTransform(tr);
btVector3 pos=tr.getOrigin();
btQuaternion qut=tr.getRotation();
dynamicObjects[i].first->getParentSceneNode()->setOrientation(Ogre::Quaternion(qut.getW(),qut.getX(),qut.getY(),qut.getZ());
Ogre::Vector3 localPos=dynamicObjects[i]。首先->getParentSceneNode()->getParentSceneNode()->convertWorldToLocalPosition(Ogre::Vector3(位置x(),位置y(),位置z());
dynamicObjects[i].first->getParentSceneNode()->setPosition(localPos);
}捕获(食人魔::异常e){
}
然而,我似乎不能做相反的事情,让刚体跟随实体,这是Kinect播放器控件集所必需的。这段代码似乎没有任何作用

bttr;
staticObjects[0].second->getMotionState()->getWorldTransform(tr);
Ogre::Vector3 entityPos=staticObjects[0]。首先->getParentSceneNode()->getPosition();
tr.setOrigin(btVector3(entityPos.x、entityPos.y、entityPos.z));
staticObjects[0]。第二->setWorldTransform(tr);

这两个部分都放在一个更新循环中。

根据您的调试过程,
EntityPosition
是否具有正确的值?您真的应该调试这些值。我怀疑您应该将
getParentSceneNode()->getDerivedPosition()
传递给物理,因为您似乎在场景节点上使用了世界帧和本地帧