如何使用 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)
我设计了我的程序,以便每次用户触摸屏幕时,精灵的图像和位置都会发生变化。我希望能够制作一个 SKSpriteNodes 数组。我见过
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)