0
私はswift2を学んでいます。私は友人プロジェクトを使用しています。彼はゲームのためのカウンターを持っていますが、私はユーザーが死ぬときにラベルを作成したいと思います。私はスコアラベルを(スコア)に設定しようとしましたが、コードはスコアを0に設定し、チャンスなしでカウントしますscore
。私はスコアを更新する方法を知らない。これには、あなたのコードが実際にscore
の更新値を見て、コードwillSetを使って新しいスコアを設定する
var score:Int = 0 {
willSet {
let scoreBand = childNodeWithName(StickHeroGameSceneChildName.ScoreName.rawValue) as? SKLabelNode
scoreBand?.text = "\(newValue)"
scoreBand?.runAction(SKAction.sequence([SKAction.scaleTo(1.5, duration: 0.1), SKAction.scaleTo(1, duration: 0.1)]))
if (newValue == 1) {
let tip = childNodeWithName(StickHeroGameSceneChildName.TipName.rawValue) as? SKLabelNode
tip?.runAction(SKAction.fadeAlphaTo(0, duration: 0.4))
}
}
}
let scoreLbl = SKLabelNode(fontNamed: "AmericanTypewriter")
scoreLbl.position = CGPointMake(0, 200)
scoreLbl.text = "\(newValue)" // , this throws error, tried score but it = 0
node.addChild(scoreLbl)
@ EricAya、私はそれをやってみましたが、それは常に0です...なぜですか? – hahu
'score'が設定される前に' willSet'が実行され、 'score'がデフォルトの' 0'で始まるので、 '常に0'です。 – GoZoner