i changed my code now my code is this var background = SKSpriteNode() var background2 = SKSpriteNode() override func didMove(to view: SKView) { background = SKSpriteNode(imageNamed: New_Background) background.position = CGPoint(x: 0, y:0) background.zPosition = -2 / background.size = CGSize(width:self.frame.size.width*2,height:self.frame.size.height*2) background2 = SKSpriteNode(imageNamed: New_Background) background2.position = CGPoint(x: 0, y:0) / background2.zPosition = -2 background2.size = CGSize(width:self.frame.size.width*2,height:self.frame.size.height*2) self.addChild(background) self.addChild(background2) self.addChild(background3) vitesse = SKAction.repeatForever(SKAction.move(by: CGVector(dx: -self.frame.size.width, dy: 0), duration: 2)) background.run(vitesse) background2.run(vitesse) } override func update(_ currentTime: TimeInterval) { / if background.position.x <= -self.frame.size.width { background.position.x