有谁知道我怎么能让我的SKSpriteNode反抗引力?我想过反转默认的引力但是意识到我也需要掉下来的东西!
看起来应该很容易,但通过文档阅读我看不出我会怎么做!
谢谢
ric*_*ter 11
更新:在iOS 8/OS X Yosemite(10.10)中,物理领域为这些问题提供了一个优雅的解决方案.这里可以快速使用它们为场景添加浮力(针对特定的节点集).
SKFieldNode使用linearGravityFieldWithVector构造函数创建一个,提供与重力相反的向量,并将字段节点添加到场景中.fieldBitMask气球设置为独特的气球.categoryBitMask字段设置为与气球重叠的东西fieldBitMask,但不与fieldBitMask任何其他实体重叠.现在,气球会上升或保持稳定,但其他物体会下降.调整场地strength将让你调整气球的浮力是否完美地平衡重力(使它们漂浮在原位,但在触摸时受到干扰),或稍微多于或少于重力(使它们缓慢上升或下降).
默认情况下,一个字段是无限的,覆盖整个场景,但您可以使用字段的region属性更改它以将其限制为场景的一部分.(如果你想模拟水中的浮力,这很有用 - 一旦一个物体越过水面的水面顶部,就会重新进入水中.)
此外,如果您想根据@TheisEgeberg的答案获得可变浮力,您可以控制其与falloff物业的距离变化.
在iOS 7/OS X Mavericks(10.9)中,或者如果您想要更精确地控制在何时何地应用哪种力,您可以使用下面原始答案中的方法.
如果你想让一个物体像气球一样漂浮 - 也就是说,要浮力,受到重力的影响而且还要抵消它 - 你需要在每一帧(即你的update:方法)上施加一个力.
注意缩放:重力是一个恒定的加速度,但如果你施加一个力来抵抗重力,力就会与质量成正比.要制作一个能够完美平衡重力的矢量applyForce:,您需要:
{-1,-1,-1}到相反方向mass你施加力的身体(F = ma重力或反重力a)来缩放.150- 有一个错误,其中SKPhysicsWorld.gravity属性与单位不同applyForce:.(如果关闭SKPhysicsWorld重力并使用SKFieldNode重力,则不需要这样做.)与关闭affectedByGravity和应用动作以使气球上升不同,这种方法适用于物理模拟的其余部分.当平衡力与重力完全相等时,气球将浮动到位 - 在与其他物体碰撞后,它将恢复平衡.如果平衡力大于重力,则气球将上升,但其上升将受到其他物体的阻碍.
| 归档时间: |
|
| 查看次数: |
3074 次 |
| 最近记录: |