Как правильно скопировать SKTileMapNode в swift

Когда я бегу loop на узле все работает нормально, узел движется правильно. Но когда я запускаю цикл на next действие прерывается, когда next достигает левой границы экрана (на полпути). Я предполагаю, что что-то не так с копией. Спасибо!

func moveBackground (name: String, speed: CGFloat = 0.01) {


    guard let node = childNode(withName: name) as? SKTileMapNode else {
        fatalError("\(name) node not loaded")
    }


    let width = node.frame.size.width
    let startPositionX = width


    node.position = CGPoint(x: startPositionX , y: 0)


    let next = node.copy() as! SKTileMapNode
    next.tileSet = node.tileSet
    next.position = CGPoint(x: startPositionX , y: 0)
    self.addChild(next)


    let distance = width * 2
    let duration = TimeInterval(speed * distance)


    let moveAction = SKAction.moveBy(x: -distance, y: 0, duration: duration)
    let resetAction = SKAction.moveTo(x: startPositionX, duration: 0)


    let sequence = SKAction.sequence([moveAction, resetAction])
    let loop = SKAction.repeatForever(sequence)


    //node.run(loop)
    next.run(loop)

}

0 ответов

Другие вопросы по тегам