1

我正在使用带有 Cocos2D 的 iPhone 版 Chipmunk 5。在两个特定对象之间发生碰撞时,我想运行一个方法来检查该碰撞的速度,如果超过 x 则运行一组代码,如果低于 x 则运行另一组代码。

现在,我了解了基础知识,但我无法计算出运行碰撞检测方法的代码以及检查冲击速度的代码。

任何帮助或指示将不胜感激。

干杯。

4

2 回答 2

0

查看 That 中的addCollisionCallbackBetweenType函数SpaceManager.h可能有助于注册碰撞。

之后,您可以检查对象的v属性,即速度的 a。(http://code.google.com/p/chipmunk-physics/source/browse/trunk/include/chipmunk/cpBody.h,未链接,新用户。)cpBodycpVect

我对花栗鼠没有经验,但这就是谷歌搜索的结果。

于 2010-07-03T18:11:22.133 回答
0

对于 Chipmunk 5,假设您想要播放声音或对碰撞造成伤害,我建议您从解决后回调中调用 cpArbiterTotalImpulse() 函数。您可以在此处的文档中找到更多信息。 http://chipmunk-physics.net/release/Chipmunk-5.x/Chipmunk-5.3.5-Docs/#Callbacks

此外,Chipmunk 5 在这一点上已经相当老了。如果不麻烦的话,我建议升级到 6.x。然后你可以使用 cpArbiterTotalKE() 函数。(不过,如果您已接近现有项目的尾声,我会坚持使用 5.x。)动能比脉冲强度更能表明碰撞有多“糟糕”。

于 2012-07-06T05:00:36.973 回答