在 Swift 中循环 A 到 B 动画

Looping an A to B animation in Swift

我是一个 swift 新手,正在尝试循环播放 A 到 B 的位置动画。我不确定如何重置位置以便动画可以循环播放。任何帮助表示赞赏。

import SpriteKit

class GameScene: SKScene {
    let Cloud1 = SKSpriteNode(imageNamed:"Cloud_01.png")
    override func didMoveToView(view: SKView) {
        view.scene!.anchorPoint = CGPoint(x: 0.5,y: 0.5)

        Cloud1.position = CGPoint(x: -800,y: 0)
        Cloud1.xScale = 0.5
        Cloud1.yScale = 0.5

        self.addChild(Cloud1)

        //DEFINING SPRITE ACTION & REPEAT

        let animateCloud1 = SKAction.moveToX(800, duration: 1.4);
        let repeatCloud1 = SKAction.repeatActionForever(animateCloud1)

        let group = SKAction.group([ animateCloud1,repeatCloud1]);

        //RUNNING ACTION

        self.Cloud1.runAction(group);

    }

    override func update(currentTime: NSTimeInterval) {
        if(Cloud1.position.x == 800){
            Cloud1.position.x = -800

        }
    }
}

如果我对你的问题理解正确,你希望 Sprite 在当前位置和你指定的新位置之间来回移动。

如果是这样,一种方法是创建两个动画并将它们按顺序排列。然后永远重复这个序列。

let animateCloud = SKAction.moveToX(800, duration: 1.4)
let animateCloudBackwards = SKAction.moveToX(Cloud1.position.x, duration: 0)
// Sequences run each action one after another, whereas groups run
// each action in parallel
let sequence = SKAction.sequence([animateCloud, animateCloudBackwards])
let repeatedSequence = SKAction.repeatActionForever(sequence)

Cloud1.runAction(repeatedSequence)