Sprite Kit弹力?

6

我只是好奇Sprite Kit Restitution实际上配置了什么?我知道它配置了SKPhysicsBody参数的某些行为,但这种行为有何不同?

5个回答

6
查看苹果文档中SKPhysicsBodyrestitution属性描述:
此属性用于确定物理体与另一个对象碰撞时失去的能量量。属性值必须在0.0到1.0之间。
Restitution影响物理体的“弹性”。例如,节点以(0,-100)的速度与地板(为其定义了物理体)发生碰撞。其对碰撞的反应将取决于restitution属性。因此,如果restitution设置为1.0,则速度将变为(0,100),如果restitution为0.9,则速度将变为(0,90),依此类推...

5

Sprite Kit物理体弹性被定义为

"一个属性,描述了物体与另一个物体发生碰撞时保留多少能量,基本上是说“弹性”" -IOS Games by Tutorials

还有来自IOS开发者文库(Apple Docs)的摘录

此属性用于确定物理体与另一个对象发生碰撞时失去多少能量。该属性必须是0.0到1.0之间的值。默认值为0.2。

还要注意,如果您提供超出(0.0到1.0)范围的值,编译器不会抱怨;但是,请考虑拥有大于1的值意味着什么,例如。物体实际上会以比起初更多的能量结束碰撞。这不是非常现实的行为,并且通常很快会破坏您的物理模拟。


3

Restitution(恢复系数)是调整物体弹跳的属性。如果将其设为1.0f,碰撞会以相同的力量反弹回去。 如果将其设为0.0f,则不会反弹。


1

Restitution基本上等同于物体的"弹性"


0
在Sprite-kit中,就像在现实生活中一样,“恢复系数”是一个值,可以通过将两个对象碰撞后的相对速度除以两个对象碰撞前的相对速度得到。
e = relative speed after collision / relative speed before collision

这个值能让我们知道碰撞的反弹或弹性程度。

我们可以区分出三种不同的情况来确定这个值。

  • 第一种是没有动能散失,也称为"完全弹性碰撞"的情况。这时候有很高比例的反弹,并且我们可以用e = 1来衡量恢复系数。

  • 第二种情况是最大位移(动能)完全消失。这时候发生的是"非弹性碰撞",碰撞的物体会粘在一起并一起移动。恢复系数是e = 0

  • 最后一种情况涉及到大多数碰撞或者说所有恢复系数e在0和1之间的情况,位于中间的情况就属于非弹性碰撞,其中一部分动能被散失了。实际上 Sprite-kit physicsBody 的恢复系数默认值是0.2


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接