Path 跟随路径操作完成后,SKNode的结束位置并不总是正确的

Path 跟随路径操作完成后,SKNode的结束位置并不总是正确的,path,sprite-kit,Path,Sprite Kit,我有一个tvOS应用程序,它有一个SpriteKit节点,并希望在半圆路径中移动它。以下是我的工作: let alphaAction = SKAction.fadeAlpha(to: 1.0, duration: 3) let path = UIBezierPath(arcCenter: CGPoint(x: 0, y: 0), radius: 500, startAngle: 0, endAngle: .pi, clockwise: true) let group = SKAction.gro

我有一个tvOS应用程序,它有一个SpriteKit节点,并希望在半圆路径中移动它。以下是我的工作:

let alphaAction = SKAction.fadeAlpha(to: 1.0, duration: 3)
let path = UIBezierPath(arcCenter: CGPoint(x: 0, y: 0), radius: 500, startAngle: 0, endAngle: .pi, clockwise: true)
let group = SKAction.group([ alphaAction, SKAction.follow(path.cgPath, asOffset: false, orientToPath: false, duration: 3) ])
node?.run(group, completion: {
    print("node: \(self.node?.position)")
})
有时节点结束于正确的位置(-500,0),但有时它结束于(-500,3.86),(-487,10.3)


有人知道为什么会发生这种情况以及如何解决它吗?

您正在处理浮点数学和不一致的时间框架。当“组”结束时,您正在这样做。组完成可能在后续操作完成之前触发。请稍后尝试打印位置,以查看是否仍然有不一致的数字。我正在添加打印语句,因为节点未在正确的位置停止。是否有任何方法确保在跟随路径操作结束后节点将停止在(-500,0)处?是的,创建一个序列并在路径操作之后放置一个moveto操作。但最终的行动看起来并不顺利。。。。无法确保跟随路径将在(-500,0)处停止?