如何使用 Swift 创建一个 SKSpriteNodes 数组?

How to create an array of SKSpriteNodes using Swift?

我设计了我的程序,以便每次用户触摸屏幕时,精灵的图像和位置都会发生变化。我希望能够制作一个 SKSpriteNodes 数组。我见过 ,但他们使用了 for-in 循环。是否可以在初始化时创建一个SKSpriteNode?

GameScene: SKScene {
    // make an array of images that you will possibly change in the future

    // calls the image
    let dad = SKSpriteNode(imageNamed: "dad0")
    var imageName = "dad"

    let moveLeft = SKAction.moveByX(-10, y:0 , duration: 0.01)

...假设我已经将爸爸精灵节点放到屏幕上...

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {

        // when index is zero, sprite is dad0. 
        // Change image to dad1 (lifted leg), don't change position     
        if index == 0{
            index += 1 //image names are dad0, dad1
            imageName += "\(index)"
            print(imageName)
            dad.texture = SKTexture(imageNamed:imageName)
        }
        else{
            index += 1
            imageName += "\(index)"
            print(imageName)
            dad.texture = SKTexture(imageNamed:imageName)
            //moves dad
            dad.runAction(moveLeft) // moves image
            index = 0
        }
        //change the image name back to dad
        imageName = "dad"
    }
}

SKSpriteNode 的数组可以简单地是:[SKSpriteNode](swift 中的数组由 SKSpriteNode 类型的元素组成)

所以,每次你想添加一个新的 SKSpriteNode 时,你可以这样做:

var arraySprites :[SKSpriteNode] = [SKSpriteNode]()

let dad : SKSpriteNode! 

dad = SKSpriteNode(imageNamed: "dad0")

arraySprites.append(dad)