我有一个无限弹跳的球模拟,可以正常工作。球永远在屏幕边缘反弹。
但是一个小问题是如果起始冲量太小,那么球永远不会弹跳开始。
我进行了实验并最终发现我的球需要至少2.1的起始冲动才能反弹。
ball.physicsBody!.applyImpulse(CGVectorMake(-2.1, -2.1))
如果我将值设置为2,则球永远不会开始弹跳,它只会停在左下角。
ball.physicsBody!.applyImpulse(CGVectorMake(-2.0, -2.0)) //ball stops
我实际上遇到了一个回答这个问题的问题,但我忘了怎么做到了。我知道spritekit强制执行一些下限,以便在发生冲突时使移动对象停止。
如果我能得到那个很棒的答案。此外,如果有一种方法可以覆盖它,并使一个对象仍然以较慢的起始冲动反弹,那将非常感谢。
编辑:所以我重新找到了另一个问题SpriteKit ball loses all energy hitting wall, restitution=1
所以我的新问题是,有没有办法在精灵套件中设置或降低速度阈值?我希望我的球能够慢慢移动。
编辑:有人吗?
答案 0 :(得分:0)
你的球有重量。
就像在现实世界中一样 - 如果你尝试用很小的力量推椅子,它就会因为体重而不会移动。
然而,如果你更加努力,椅子将开始移动,但它不会从0.1 N的力开始(这实际上取决于重量,摩擦力和其他一些因素)。