我正在创建一个游戏,我需要一组杆子从屏幕右侧移动到左侧。 一旦它到达左侧,我需要将极点重置到起点,然后在连续循环中再次运行。创建极点只是将两个极点的 x 位置设置为原始起始位置。杆子移动得很好,问题是循环方面。我不确定为什么下面的代码不起作用。我对 swift 很陌生,并承认我不太确定我在做什么。
movePole()
let create = SKAction.run {
() in
self.createPoles()
self.movePole()
}
let delay = SKAction.wait(forDuration: 10)
let spawn = SKAction.sequence([create,delay])
self.run(SKAction.repeatForever(spawn))
以下是您需要执行的操作:
- 告诉杆子移动特定距离一段时间。
- 告诉杆子移回起点。
- 重复。
如下所示:
let AnimationTime = 5
let PoleTravelDistance = view.frame.width
let MovePolesToLeft = SKAction.move(by: CGVector(dx: PoleTravelDistance, dy: 0), duration: AnimationTime)
let ReturnPolesToRight = SKAction.move(to: CGPoint(x: (POLESNODE.frame.width)/2, y: (POLESNODE.position.y)), duration: 0)
let PoleAnimationSequence = SKAction.sequence([MovePolesToLeft, ReturnPolesToRight])
POLESNODE.run(SKAction.repeatForever(PoleAnimationSequence))
希望有帮助。