重力不起作用? 我对C++和游戏开发都是新的。我用子弹物理编码了一个函数,它返回了世界的引力,但似乎不起作用。它总是返回0。不过,我已经初始化了world、solver、dispatcher、broadphase和collision配置

重力不起作用? 我对C++和游戏开发都是新的。我用子弹物理编码了一个函数,它返回了世界的引力,但似乎不起作用。它总是返回0。不过,我已经初始化了world、solver、dispatcher、broadphase和collision配置,c++,game-physics,visual-c++-2010,bulletphysics,C++,Game Physics,Visual C++ 2010,Bulletphysics,代码如下: void _setGravity(btScalar gravity) //sets the gravity of the world { if(gravity > 0.f) gravity = -gravity; _dynamicsWorld->setGravity(btVector3(0, gravity, 0)); } btScalar _getGravity(void) //returns the gravity of the wo

代码如下:

void _setGravity(btScalar gravity) //sets the gravity of the world
{
    if(gravity > 0.f)
        gravity = -gravity;
    _dynamicsWorld->setGravity(btVector3(0, gravity, 0));
}

btScalar _getGravity(void) //returns the gravity of the world
{
return ((btScalar*)_dynamicsWorld->getGravity());
}
我做错什么了吗

谢谢。

该函数返回一个by值,因此需要使用结果向量来获得重力:

return _dynamicsWorld->getGravity().getY();

该转换看起来非常可疑,为什么要将结果转换为指针?我认为dynamicsWorld setGravity和getGravity的代码会有很大帮助。还有一个想法:您将重力设置为向量,但将其返回为标量…?而不是强制转换,而是编写一个适当的转换函数。这将帮助您了解问题所在。不要使用C样式转换。使用
static\u cast
。如果您需要重新解释cast以使其编译,那么您可能有一个bug。我从不确定这一点
(a*)a->x()
;第1个
->
还是演员阵容?非常感谢,我可能需要更多帮助。那么,你能帮我吗(未来会有帮助)?@rittik:如果你还有其他问题,就在stackoverflow上问它。@gartenriese好的,那么我的下一个问题是:我如何将我的物体与子弹物理联系起来?“我必须只表达他们的立场吗?”@rittik:我认为最好在会议上提出这个问题