【问题标题】:Custom gravity for single node in SpriteKitSpriteKit中单个节点的自定义重力
【发布时间】:2021-03-18 22:17:23
【问题描述】:

我想为选定的精灵节点设置自定义下降速度。

问题是,如果重力更新,它会改变所有的场景节点。

如果使用脉冲,一开始速度会较大,想要的行为是逐渐加速或使用恒速(这取决于特定的节点)。

可以在更新功能中手动完成,但也许有更好,更优雅的解决方案?

【问题讨论】:

    标签: swift sprite-kit skphysicsbody


    【解决方案1】:

    使用带有fieldBitMaskcategoryBitMask 设置的SKFieldNode,这样它只会影响所需的节点。

    如果您想降低某些节点的重力,请添加linearGravityField 以影响这些节点并设置其强度以将正常重力降低到所需的程度。或者您可以直接将添加的字段设置为所需的值,并将特殊节点的affectedByGravity 设置为false 以关闭这些节点的正常重力。

    如果您希望某些下落节点达到恒定速度,也可以包括 dragField 并设置其强度以在达到所需的最终速度时平衡重力加速度。

    https://developer.apple.com/documentation/spritekit/skfieldnode

    【讨论】:

      【解决方案2】:

      重力是一种力,所以你想要 SKPhysicsBody 的 applyForce,它只作用 1 帧,所以更新功能是对的

      【讨论】:

        猜你喜欢
        • 2016-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-20
        • 2021-07-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多