SKSpriteNode的循环位置

时间:2018-04-17 18:55:51

标签: swift while-loop sprite-kit skspritenode skaction

我以为我对while循环非常了解。我希望left_spinner从右边的屏幕移到离开左边的屏幕。

然后返回到右侧的屏幕,然后返回到左侧的屏幕。代码明智我没有看到问题。

ngOnChanges()

1 个答案:

答案 0 :(得分:0)

您不需要任何同步循环,SKAction API为您提供了对行动进行排序的方法。只需用以下代码替换整个代码:

override func didMove(to view: SKView) {

    left_spinner = self.childNode(withName: "left_spinner") as! SKSpriteNode
    left_spinner.position = CGPoint(x: 675, y: 0)

    // Prepare base actions
    let moveLeftAction = SKAction.move(to: CGPoint(x: -675, y: 0), duration: 3.0)
    let moveRightAction = SKAction.move(to: CGPoint(x: 675, y: 0), duration: 3.0)

    // Prepare sequencing
    let loopCount = 10
    let leftRightAction = SKAction.sequence([moveLeftAction, moveRightAction])
    let pingPongAction = SKAction.repeat(leftRightAction, count: loopCount)

    // Run final action
    left_spinner.run(pingPongAction)
}