【发布时间】:2016-08-19 07:40:00
【问题描述】:
所以我最近开始使用结构来保存定义我的成就的变量,以便更容易访问。如下图:
struct Achieve {
var aName:String = ""
var aDes:String = ""
var aImage:String = ""
var aAmount:Int = 0
var aRequired:Int = 0
}
所以我像这样定义了一个名为“Ach1”的变量:
var Ach1 = Achieve(aName: "No. Games", aDes: "Games Played", aImage: "locked", aAmount: 0, aRequired: 10)
然后我使用下面的函数创建了一个 SKSpriteNode:
func generateShopItems (location: CGPoint, page:SKSpriteNode, tex: String) -> SKSpriteNode {
let node = SKSpriteNode(imageNamed: tex)
node.position = location
page.addChild(node)
return node
}
然后我在下面的另一个函数中定义 SKSpritenode 时使用 Ach1 变量的 aImage 属性作为 tex 字符串
Achievements.append(generateShopItems(CGPointMake(-120, 200), page:(page1ScrollView), tex: Ach1.aImage))
第一次运行游戏时,纹理效果很好,但是当我在 touches 方法中更改 Ach1 变量 aImage 属性时,我无法更改图像,它只是保持不变。
} else if (node == Achievements[7]) {
Ach1.aImage = "diamondicon"
print("working")
}
我需要能够在玩游戏时更改 SKSpriteNode 的图像。有人可以告诉我我做错了什么吗?
编辑
var Ach1 = Achieve(node: SKSpriteNode?, aName: "No. Games", aDes: "Games Played", aImage: "locked", aAmount: 0, aRequired: 10)
【问题讨论】:
标签: swift swift2 skspritenode