我正在使用太空管理员,我想计算物体碰撞的力,这样我就可以调整声音,并根据损坏情况来调整spirtes。有人可以告诉我如何计算力量。这是我在这个网站上得到的代码。
if(!cpArbiterIsFirstContact(arb)) return;
cpFloat impulse = cpvlength(cpArbiterTotalImpulse(arb));
浮动体积= MIN(脉冲/ 500.0f,1.0f); NSLog(@“冲动是:%f”,音量);
NSLog(@“impluse x:%f y:%f”,cpArbiterTotalImpulse(arb).x,cpArbiterTotalImpulse(arb).y); if(volume> 0.05f){ [SimpleSound playSoundWithVolume:volume]; }
我在我的POSTSOLVE方法中有这个。我在BEGIN中尝试了它并且所有打印都是0.我通过这个网站发现我需要这样做。 smgr.space-> elasticIterations = smgr.space-> iterations;
即使在完成上述操作后,有时我会得到1,有时会说“nan”。我需要知道一些基本知识吗?
由于
答案 0 :(得分:0)
来自cpArbiterTotalImpulse()的文档:
返回已应用的冲动 这一步解决了碰撞。 只应调用这些函数 从postSolve()回调,否则 结果未定义。
注意:如果你 正在使用已弃用的弹性 迭代设置你的空间,它 会导致你不正确 结果。弹性迭代不应该 需要更长时间,你应该 能够安全地关闭它们。