Iphone 花栗鼠的物体以很高的速度从地板上掉下来。帮忙?

Iphone 花栗鼠的物体以很高的速度从地板上掉下来。帮忙?,iphone,cocos2d-iphone,physics,chipmunk,Iphone,Cocos2d Iphone,Physics,Chipmunk,我正在使用花栗鼠cocos2d,这将最终成为一款声音生成游戏,其中碰撞的粒子会发出噪音。但现在,我遇到了一个问题:我的粒子不断地从地板上掉下来 在示例“弹跳球”模板中,传入加速计流上的乘数相当低(约100.0f),但为了让事情真正快速反应,我正在启动它: - (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)accel { space->gravity = cpvmu

我正在使用花栗鼠cocos2d,这将最终成为一款声音生成游戏,其中碰撞的粒子会发出噪音。但现在,我遇到了一个问题:我的粒子不断地从地板上掉下来

在示例“弹跳球”模板中,传入加速计流上的乘数相当低(约100.0f),但为了让事情真正快速反应,我正在启动它:

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)accel
{   space->gravity = cpvmult(cpv(accel.x, accel.y), 10000.0f); // originally 100.0f
}
我发现这可以通过将
dt
设置得非常小,将加速计轮询到1/240秒左右来改善


这是最好的方式吗?有没有其他方法可以对花栗鼠说“小心,这些东西移动得很快”

一般来说,许多物理引擎很难在速度相对较小的快速移动物体之间发生碰撞。我不知道花栗鼠的具体情况,但你的问题意味着在特定的时间间隔对相交的物体进行检查。如果对象移动迅速且较小,则可能会跳过发生碰撞的时间间隔

两个最简单的解决方案是使用较小的时间间隔,或者以某种方式使两个对象中的一个更大。你是如何代表发言的?如果可以将其表示为一个厚矩形,那么也应该可以减少问题


更难的解决方案是使用更复杂的求交算法,例如用以表示两个样本之间球体穿过的空间面积。如果API还不支持这一点,那就需要进行大量的计算和修改。

谢谢,这正是我所怀疑的。更高的帧速率+巨大的边界对象=更好的结果。尽管如此,在这之后,无论边界对象有多大,我仍然可以让东西从地板上掉下来。哎呀,我的弹跳球来了。。。永远坠落。Oh.Box2d能够将一个动态实体标记为“子弹”(),这会触发一些额外的检查,查看它是否沿着其路径击中另一个动态实体。我对花栗鼠不太熟悉,但也许在它的深处有一个类似的概念?是的,也许Box2d将是答案。