我正在用spritekit进行快速游戏,我只是在场景中添加了一个图像,即SKSpriteNode。游戏开始时,我想使其仅在x轴上从屏幕的左侧移动到右侧,直到永远重复。我正在为此使用什么代码而苦苦挣扎。

我的图片的代码是:

func addDrake1(){
    let Drake1 = SKSpriteNode(imageNamed: "Drake1")
    Drake1.position = CGPoint(x:self.frame.size.width/2, y:self.frame.size.height - 300)
    Drake1.zPosition = 2
    addChild(Drake1)
}

最佳答案

如果您从cgpoint(x:0,y:frame.size.height-300)的最左侧开始精灵位置

您可以使用此方法:

func moveSprite() {

        let moveRight = SKAction.moveByX(frame.size.width, y: 0, duration: 2)

        let moveLeft = SKAction.moveByX(-frame.size.width, y: 0, duration: 2)


        let moveBackAndForth = SKAction.repeatActionForever(SKAction.sequence([moveRight, moveLeft]))


        Drake1.runAction(moveBackAndForth)

     }


您还可以通过更改动作moveLeft和moveRight的持续时间来更改精灵移动的速度

10-07 14:17