【发布时间】:2016-08-27 00:39:29
【问题描述】:
好吧,首先我有一个成就变量,它是从这样的结构定义的:
struct Achieve {
var node: SKSpriteNode?
var aName:String = ""
var aDes:String = ""
var aImage: String = "" {
didSet {
node?.texture = SKTexture(imageNamed: aImage)
}
}
var aAmount:Int = 0
var aRequired:Int = 0
var aStage:Int = 0
}
var Ach1 = Achieve(node: nil, aName: "Player", aDes: "Games Played", aImage: "locked", aAmount: 0, aRequired: 10, aStage: 1)
我的问题是,当我尝试更改 aAmount 属性的数量时,它没有显示在 SKLabel 上,而 SKLabel 显示它只是停留在 0 的数量,我的 sklabel 在如下函数中定义:
func generateLabels(location: CGPoint, page:SKSpriteNode, text: String) -> SKLabelNode {
let node = SKLabelNode()
node.fontColor = UIColor.whiteColor()
node.fontName = "Helvetica"
node.position = location
node.fontSize = 15
node.text = text
page.addChild(node)
return node
}
func menu() {
_ = generateLabels(CGPointMake(0, -285), page:page1ScrollView, text: "\(Ach1.aAmount) / \(Ach1.aRequired)")
}
如果我在停止运行 aAmount 时更改它然后更改它然后再次运行游戏,它似乎可以工作。它似乎也在游戏过程中对 aAmount 属性进行了更改,但在游戏过程中由于某种原因它似乎没有更新标签。谁能告诉我为什么它不会更新?
我也像这样更新 aAmount 属性:
Ach1.aAmount += 1
print("\(Ach1.Amount)")
【问题讨论】:
标签: swift sprite-kit sklabelnode