我只是好奇Sprite Kit Restitution实际上配置了什么?我知道它配置了SKPhysicsBody参数的某些行为,但这种行为有何不同?
我只是好奇Sprite Kit Restitution实际上配置了什么?我知道它配置了SKPhysicsBody参数的某些行为,但这种行为有何不同?
SKPhysicsBody
的restitution
属性描述:Sprite Kit物理体弹性被定义为
"一个属性,描述了物体与另一个物体发生碰撞时保留多少能量,基本上是说“弹性”" -IOS Games by Tutorials
还有来自IOS开发者文库(Apple Docs)的摘录
此属性用于确定物理体与另一个对象发生碰撞时失去多少能量。该属性必须是0.0到1.0之间的值。默认值为0.2。
还要注意,如果您提供超出(0.0到1.0)范围的值,编译器不会抱怨;但是,请考虑拥有大于1的值意味着什么,例如。物体实际上会以比起初更多的能量结束碰撞。这不是非常现实的行为,并且通常很快会破坏您的物理模拟。
Restitution(恢复系数)是调整物体弹跳的属性。如果将其设为1.0f,碰撞会以相同的力量反弹回去。 如果将其设为0.0f,则不会反弹。
Restitution基本上等同于物体的"弹性"
e = relative speed after collision / relative speed before collision
这个值能让我们知道碰撞的反弹或弹性程度。
我们可以区分出三种不同的情况来确定这个值。
第一种是没有动能散失,也称为"完全弹性碰撞"的情况。这时候有很高比例的反弹,并且我们可以用e = 1来衡量恢复系数。
第二种情况是最大位移(动能)完全消失。这时候发生的是"非弹性碰撞",碰撞的物体会粘在一起并一起移动。恢复系数是e = 0。
最后一种情况涉及到大多数碰撞或者说所有恢复系数e在0和1之间的情况,位于中间的情况就属于非弹性碰撞,其中一部分动能被散失了。实际上 Sprite-kit physicsBody
的恢复系数默认值是0.2。