如果冲动太小,SKPhysicsBody球不会反弹

shw*_*ick 5 bounce ios sprite-kit skphysicsbody swift

我有一个无限弹跳的球模拟,可以正常工作.球永远围绕屏幕边界反弹.

但是一个小问题是,如果起始冲量太小,那么球永远不会弹跳开始.

我进行了实验并最终发现我的球需要至少2.1的起始冲动才能反弹.

ball.physicsBody!.applyImpulse(CGVectorMake(-2.1, -2.1))
Run Code Online (Sandbox Code Playgroud)

如果我将值设置为2,则球永远不会开始弹跳,它只会停在左下角.

ball.physicsBody!.applyImpulse(CGVectorMake(-2.0, -2.0)) //ball stops
Run Code Online (Sandbox Code Playgroud)

我实际上遇到了一个回答这个问题的问题,但我忘了怎么做到了.我知道spritekit强制执行一些下限,以便在发生冲突时使移动对象停止.

如果我能得到那个很棒的答案.此外,如果有一种方法来覆盖它,并使一个对象仍然以较慢的起始冲动反弹,这将是非常好的谢谢.

编辑:所以我重新找到了另一个问题,SpriteKit球失去所有能量击中墙,恢复原状= 1

所以我的新问题是,有没有办法在精灵工具包中设置或降低速度阈值?我希望我的球能够慢慢移动.

编辑:有人吗?

Geo*_*e_E 0

你的球有重量。

就像在现实世界中一样 - 如果你尝试用很小的力推一把椅子,它不会移动,因为它有重量。

然而,如果你用力推动,椅子就会开始移动,但它并不是从 0.1 N 的力开始移动(这实际上取决于重量、摩擦力和其他一些因素)。