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…
I have solution that works but doesn't feel right. The sequence won't work...
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)
}
}
Any suggestion? Thanks for all the answers in advance.