【发布时间】:2021-03-18 22:17:23
【问题描述】:
我想为选定的精灵节点设置自定义下降速度。
问题是,如果重力更新,它会改变所有的场景节点。
如果使用脉冲,一开始速度会较大,想要的行为是逐渐加速或使用恒速(这取决于特定的节点)。
可以在更新功能中手动完成,但也许有更好,更优雅的解决方案?
【问题讨论】:
标签: swift sprite-kit skphysicsbody
我想为选定的精灵节点设置自定义下降速度。
问题是,如果重力更新,它会改变所有的场景节点。
如果使用脉冲,一开始速度会较大,想要的行为是逐渐加速或使用恒速(这取决于特定的节点)。
可以在更新功能中手动完成,但也许有更好,更优雅的解决方案?
【问题讨论】:
标签: swift sprite-kit skphysicsbody
使用带有fieldBitMask 和categoryBitMask 设置的SKFieldNode,这样它只会影响所需的节点。
如果您想降低某些节点的重力,请添加linearGravityField 以影响这些节点并设置其强度以将正常重力降低到所需的程度。或者您可以直接将添加的字段设置为所需的值,并将特殊节点的affectedByGravity 设置为false 以关闭这些节点的正常重力。
如果您希望某些下落节点达到恒定速度,也可以包括 dragField 并设置其强度以在达到所需的最终速度时平衡重力加速度。
https://developer.apple.com/documentation/spritekit/skfieldnode
【讨论】:
重力是一种力,所以你想要 SKPhysicsBody 的 applyForce,它只作用 1 帧,所以更新功能是对的
【讨论】: