我正在使用Box2D(AS3 / Flash版本,如果它很重要),我正在尝试计算每个身体携带多少重量。

我知道如何遍历所有物体,并且我知道如何轮询“碰撞检测”例程,但是一旦施加了重量,似乎碰撞力就会消失。是否存在某种“总静力”?物业我在俯瞰?

有帮助吗?

解决方案

在可选的contactListener对象中使用contactResult类型,您可以轮询每个项目的normalForce,以找出正在对对象应用的力(本质上包括权重)。

请注意,睡眠的身体(例如休息堆叠)不会触发contactResults,但是如果您关闭睡眠或者只想在动作发生时测量力量,它应该可以正常工作。

有关如何实现contactListener类的信息,请查看文档。

其他提示

自从我玩Box2D已经有一段时间但你尝试过轮询 GetReactionForce()

我知道当我进行桥梁模拟并且我希望桥梁根据它的重量而断开时,我进行了轮询 GetReactionForce()如果它高于某个阈值,那么我删除了连接这两个实体的关节。

我认为您需要做的就是遍历您的b2Body实例并使用 GetMass ()方法。

我不确定你的意思是“总静力”。

至于重量/质量,我认为你在任何碰撞之前应用它,当你创造身体时, 使用 setMass 自行设置();或者让box2d根据形状估算质量,使用 SetMassFromShapes ()方法。

HTH

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top