【发布时间】:2017-11-12 20:32:54
【问题描述】:
注意 Apple 的 doco 断言
https://developer.apple.com/documentation/spritekit/skphysicsbody/1519796-lineardamping
此属性用于模拟身体上的流体或空气摩擦力。该属性的值必须介于 0.0 和 1.0 之间。默认值为 0.1。如果值为 0.0,则不会对对象应用线性阻尼。
事实上:您可以设置大于一的值 - 因此,“10.0”和“20.0”可以完美运行; 1、10 和 20 都非常明显不同。
- 有没有人对此进行过调查并发现实际上是否存在最大值? (如果只是渐近线,实际范围是多少?)
【问题讨论】:
-
linearDamping 是速度 = 速度 / (1 + 时间 * 阻尼),因此任何大于 1 的值都将超出该帧的阻力范围。这意味着阻尼效应将对时间帧变得敏感,帧的不一致可能导致结果不一致,这正是 Box2D 所说的。所以文档确实应该说强烈推荐,除非苹果在其中放置了一个检查,不允许公式在计算中使用大于 1 的值
-
为什么会不正确?如果时间为 1,阻尼为 0.5,速度为 100,则 100 = 100 / (1 + 1 * 0.5),100 = 100 / 1.5,因此 1 秒后的速度为 66.666
-
这意味着你最终可能会遇到阻力可能会导致实际上给你速度的效果
-
这是Box2D使用的公式,是Physics Kit作为其基础的物理引擎
-
不,它不是基于帧,它是基于帧之间的时间量
标签: ios sprite-kit cocos2d-iphone