【问题标题】:Swift Spritekit dissipating Gravity fieldSwift Spritekit 消散重力场
【发布时间】:2014-11-15 14:17:11
【问题描述】:

我有一个使用 spritekit 的 swift 游戏。如果您点击屏幕,它将创建一个径向重力场并将所有其他对象拉入。我像这样创建重力场

var fieldNode = SKFieldNode.radialGravityField();

fieldNode.falloff = 0.5;
fieldNode.strength = 1;
fieldNode.animationSpeed = 0.5;

它有效,但我的问题是我只希望一个精灵只有在它距径向重心一定距离内时才会受到影响,并且我将拥有超过 1 个精灵。我看到的方式是有两种方法可以做到这一点,1.当精灵太远时,关闭该精灵的径向重力或2.使径向重力在一定半径后消散。场景也有整体重力。

所以主要问题是:

如何关闭精灵的 1 个重力或使径向重力消散?

【问题讨论】:

    标签: ios swift sprite-kit


    【解决方案1】:

    字段节点的region 属性决定了它的影响范围。关联的SKRegion 对象允许您通过其半径定义一个圆形区域。

    您还可以在物理实体上使用fieldBitMask,在场上使用categoryBitMask,以选择性地控制哪些场影响哪些实体。

    【讨论】:

      【解决方案2】:

      尝试使用:

          let radius: CGFloat = 1000.0
          gravityField.strength = Float(pow(radius, 2)) * pow(10, -3)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多