c++ - 问题应用鼠标冲动

标签 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() 函数中使用相同的想法,它工作正常。这是为什么?

最佳答案

解决了。

问题与 Bullet 无关。我将我的物理组件存储在一个 vector 中作为引用,并将 &(m_physicsComponents.back()) 附加到我的对象。每次调整 1 个对象大小的 vector 都会中断。直到现在我才注意到这个问题,因为 splinter 的物体恰好是我的测试物体所在的位置。将我的 vector 更改为存储指针,一切正常。

关于c++ - 问题应用鼠标冲动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34862170/

相关文章:

C++ - 类方法更改成员变量,但不在 main 中

c++ - 原始循环与依赖于索引的循环算法

iphone - 角色移动时 iOS FPS 低帧率,探查器显示 Physics.Simulate 占用 CPU 时间

sprite-kit - 向 SKTileMapNode 添加碰撞检测

physics - Bullet 中的惯性张量为零有什么作用?

c++ - 项目符号 2.81 : Unable to find installed header?

C++ 枚举类作为可变模板参数

c++ - Memcpy 和使用 pcap 的内存管理

java - 游戏物理 - 摩擦

c++ - Bullet Physics - 角度系数不适用