2016-01-18 55 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個對象會中斷。直到現在我才注意到這個問題,因爲破碎的對象恰好是我的測試對象所在的位置。改變了我的矢量存儲指針和一切工作。