用鼠标施加冲动的问题

时间:2016-01-18 19:04:03

标签: c++ physics bulletphysics

我目前正致力于将Bullet SDK集成到我的游戏引擎中。目前我正试图通过鼠标点击对我的对象施加力。到目前为止,我已经失败了。 以下是单击对象时调用的代码:

void PhysicsComponent::ApplyForce(glm::vec3& hitPoint, glm::vec3& direction, float amount)
{
   if (!m_body)
      return;

   m_body->activate(true);
   btVector3 force = btVector3(0, 1, 0) * amount;
   m_body->applyImpulse(force, centerOfMass);

}

如果我在update()函数中使用相同的想法,它可以正常工作。这是为什么?

1 个答案:

答案 0 :(得分:0)

解决了它。

问题与Bullet无关。我将物理组件存储在矢量中作为参考,并将&(m_physicsComponents.back())附加到我的Objects。 Evey时间向量调整大小1对象会破坏。到目前为止,我还没有注意到这个问题,因为破碎的物体正好是我的测试对象所在。改变我的向量来存储指针,一切正常。