gpt4 book ai didi

swift - 这两个 SpriteKit 函数有什么区别?

转载 作者:可可西里 更新时间:2023-11-01 00:20:58 27 4
gpt4 key购买 nike

我不知道这两个函数有什么区别。

首先:

coin.run(SKAction.moveTo(y: -146.115, duration: 0))

第二个:

coin.position.y = -146.115

最佳答案

SKAction 直到下一帧才会被处理——紧接在 update 之后。如果您在 didEvaluateActions 之后调用 .run,您的位置将不会更新,并且您可能会因此遇到错误。

第二行代码将立即执行,无论您在 SK 循环中的位置如何。

例如,如果您正在使用物理学,并在 didBegin(contact) 中调用 .run(.move(,然后期望该 Sprite 已经移动通过didEnd(contact),那么你就会遇到问题。在那种情况下,你想手动调整.position而不是使用action。

enter image description here

其次,.run 命令的性能也较差,因为它需要初始化 SKAction 对象,这比手动调整位置慢 20-30%。

诚然,这种差异加起来并不多,但在复杂的场景中,这可能是在 16 毫秒 (60fps) 内完成所有操作之间的差异。

第三,正如其他人所提到的,有一个 forDuration 参数,它允许您在一段时间内为移动设置动画。例如,2 秒,或者您想要的任何时间。

关于swift - 这两个 SpriteKit 函数有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45219790/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com