How to animate random repeated actions?

Hi,

How can I make SKAction.move() to be random and repeatForever?

For example:

let boxPosition = Double.random(in: 100…600)

let boxMove = SKAction.move(to: CGPoint(x: boxPosition, y: 100), duration: 10)

let boxRepeat = SKAction.repeatForever(boxMove)
box.run(boxRepeat)

I know that in above example will not update the value…

Thanks for all the answers in advance.

This works but it doesn’t look right. The sequence won’t work… Any suggestion?


import SpriteKit

class GameScene: SKScene {
    
    let box = SKSpriteNode()
    
    override func didMove(to view: SKView) {

        box.texture = SKTexture(imageNamed: "box")
        box.size = CGSize(width: 50, height: 50)
        box.position = CGPoint(x: 200, y: 200)
        addChild(box)
        
        let boxRandom = SKAction.run({
            let boxPosition = Double.random(in: 300...500)
            let boxMove = SKAction.move(to: CGPoint(x: 200, y: boxPosition), duration: 2)
            self.box.run(boxMove)
        })
        
        let boxMove = SKAction.move(to: CGPoint(x: 200, y: 100), duration: 2)
        
        let boxGroup = SKAction.sequence([boxMove, boxRandom])
        let boxRepeat = SKAction.repeatForever(boxGroup)
        box.run(boxRepeat)
    
    }
    
}

This topic was automatically closed after 166 days. New replies are no longer allowed.