精灵套装恢复原状?

时间:2014-04-10 15:51:05

标签: ios objective-c sprite-kit

我只是好奇Sprite Kit Restitution究竟配置了什么?我知道它配置了一些关于SKPhysicsBody参数的行为,但行为有何不同?

5 个答案:

答案 0 :(得分:5)

查看Apple文档中restitution的{​​{1}}属性说明:

  

此属性用于确定物理体的能量   当它从另一个物体反弹时失去。该物业必须是一个价值   介于0.0和1.0之间。

恢复会影响物理学的'bounciness'。例如,一个节点与地板(为其定义了physicsBody)的速度碰撞(0,-100)。它对碰撞的反应将取决于归属财产。因此,如果恢复原状设置为1.0,速度将变为(0,100),如果恢复原状为0.9,速度将变为(0,90),依此类推......

答案 1 :(得分:3)

Sprite Kit Physicsbody Restitution定义为

  

“描述身体弹跳时身体保留多少能量的属性   脱离另一个身体,基本上是一种说“蹦蹦”的奇特方式   -IOS Games by Tutorials

也是excerpt from the IOS Developer Library (Apple Docs)

  

此属性用于确定物理体的能量   当它从另一个物体反弹时失去。   该属性必须是介于0.0和1.0之间的值。默认值为0.2。

另外请注意,如果提供的值超出(0.0到1.0)范围,编译器就不会抱怨;但是,例如,考虑一个大于1的值意味着什么。身体实际上会以比最初更多的能量结束碰撞。这不是很现实的行为,而且往往会很快破坏你的物理模拟。

答案 2 :(得分:3)

恢复设置对象的反弹,如果将其设置为1.0f,则碰撞将以相同的力反弹回击。如果你将其设置为0.0f,则根本不会反弹。

答案 3 :(得分:1)

恢复原则基本上等同于一个对象的“bounciness”

答案 4 :(得分:0)

在现实生活中的Sprite-kit中的恢复原状是一个值,可以通过将碰撞后两个物体之间的相对速度除以两个物体之间的相对速度来获得。碰撞

e = relative speed after collision / relative speed before collision

此值可以让我们知道碰撞的弹跳程度或弹性。

我们可以区分区分这个值的三种具体情况。

  • 第一个没有动能分散的时候,我们也可以打电话 这种情况是一种“完全弹性碰撞”所在的地方 非常高的反弹率,我们可以衡量恢复原状 值 e = 1

  • 第二次发生在最大运动(动能)丢失时 完全,那么我们就会发生碰撞的“非弹性碰撞” 物体仍然卡住并一起移动。值 e = 0

  • 最后一个案例涉及大多数碰撞或所有碰撞 值 e介于0和1之间的情况,或者 中间。它本质上是一种非弹性碰撞,其中有一点 动能分散。事实上,Sprite-kit physicsBody恢复默认 0.2