使用鼠标应用脉冲时出现问题

Issue applying impulse with mouse

本文关键字:问题 脉冲 鼠标 应用      更新时间:2023-10-16

我目前正在将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() 函数中使用相同的想法,它可以正常工作。这是为什么呢?

解决了。

问题与子弹无关。我将物理组件作为引用存储在向量中,并将 &(m_physicsComponents.back()) 附加到我的对象。调整大小的矢量 1 个对象的时间会中断。直到现在我才注意到这个问题,因为损坏的物体恰好是我的测试对象所坐的物体。更改了我的矢量以存储指针,一切正常。