I have an SKSpriteNode image with the code:
let Drake1 = SKSpriteNode(imageNamed: "Drake1")
    Drake1.position = CGPoint(x:self.frame.size.width/3, y:self.frame.size.height - 230)
    Drake1.zPosition = 2
    addChild(Drake1)
    //drake movement
    let moveRight = SKAction.moveByX(frame.size.width/2.8, y: 0, duration: 2)
    let moveLeft = SKAction.moveByX(-frame.size.width/2.8, y: 0, duration: 2)
    let moveBackAndForth = SKAction.repeatActionForever(SKAction.sequence([moveRight, moveLeft]))
    Drake1.runAction(moveBackAndForth)
What I want to do is, when the image is moving to the right, I want to replace the image with a different SKSpriteNode image, and when it moves back left, I want to use the original image, and repeat this forever. I am struggling with what the code should be for this.
                        
SpriteKit comes with a SKAction,
setTexture, to instantaneously change a sprite's texture with relative ease. You can create an inline SKTexture object of each images, use them in SKActions, and add them to your sequence loop, like this:Hopefully this works for you! Please note that if the textures are different sizes, you must add
resize: BooltosetTexture's arguments.