使用spritekit的iOS动画

使用spritekit的iOS动画,ios,swift,sprite-kit,Ios,Swift,Sprite Kit,我正在尝试使用spritekit在iOS应用程序上创建动画 到目前为止,我为此所做的代码是 import UIKit import SpriteKit import GameplayKit class TygaScene: SKScene { var tygaFrames: [SKTexture]? // array of images required init?(coder aDecoder: NSCoder) { super.init(co

我正在尝试使用spritekit在iOS应用程序上创建动画

到目前为止,我为此所做的代码是

import UIKit
import SpriteKit
import GameplayKit

class TygaScene: SKScene {

    var tygaFrames: [SKTexture]?       // array of images

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    override init(size: CGSize) {  // init function then set size
        super.init(size: size)
        self.backgroundColor = UIColor.white   // setting colour to background 

        var frames:[SKTexture] = []    // create place holder for texture to initialise

        let tygaAtlas = SKTextureAtlas(named: "tyga")

        for index in 1...5 {    // adding all images from folder
            let textureName = "tyga_\(index)"  // naming the first bit of the file
            let texture =  tygaAtlas.textureNamed(textureName)
            frames.append(texture)
        }
        self.tygaFrames = frames


    }


    func moveTyga() {
        let texture = self.tygaFrames![0]
        let tyga = SKSpriteNode(texture: texture)

        tyga.size = CGSize(width: 280, height: 280)

        let randometygaYPositionGenerator = GKRandomDistribution(lowestValue: 50, highestValue: Int(self.frame.size.height))
        let yPosition = CGFloat(randometygaYPositionGenerator.nextInt())

        let rightToLeft = arc4random() % 2 == 0

        let xPosition = rightToLeft ? self.frame.size.width + tyga.size.width / 2 : -tyga.size.width / 2

        tyga.position = CGPoint(x: xPosition, y: yPosition)

        if rightToLeft {
            tyga.xScale = -1
        }
        self.addChild(tyga)

        tyga.run(SKAction.repeatForever(SKAction.animate(with: self.tygaFrames!, timePerFrame: 0.05, resize: false, restore: true)))



        var distanceToCover = self.frame.size.width + tyga.size.width
        if rightToLeft {
            distanceToCover += -1
        }

        let time = TimeInterval(abs(distanceToCover/140))

        let moveAction = SKAction.run {
            tyga.removeAllActions ()
            tyga.removeFromParent()

        }
        let allActions = SKAction.sequence([moveAction, removeAction])

        tyga.run(allActions)

        } 

    }
给出错误的部分是行:

let allActions = SKAction.sequence([moveAction, removeAction])            
    tyga.run(allActions)            
}
你能告诉我怎样才能克服这个问题吗


谢谢。

有什么错误?在哪里声明removeAction?这是什么呢?正如Ron所提到的,您缺少了
removeAction
的声明,因此您可能在这一行中遇到了编译器错误。但是,即使修复了该编译器错误,
SKAction
序列从调用
removeAllActions()
开始,然后是
removeFromParent()
,这将从场景中删除节点,而不会发生任何事情。