2016-01-18 15 views
2

我目前正在将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()函数,它工作正常。为什么是这样?

回答

0

解决了它。

问题与子弹无关。我将我的物理组件存储在向量中作为参考,并将&(m_physicsComponents.back())附加到我的对象中。埃维时间调整大小的矢量1个对象会中断。直到现在我才注意到这个问题,因为破碎的对象恰好是我的测试对象所在的位置。改变了我的矢量存储指针和一切工作。