ラベルを設定しています
let scoreLabel = SKLabelNode(fontNamed: "Edit Undo Line BRK")
関数で
func increaseScoreBy(increment: Int) {
score += increment
scoreLabel.text = "Score: 100"
scoreLabel.removeAllActions()
scoreLabel.runAction(scoreFlashAction)
}
そして、scoreLabel.text = "Score: 100" をコメントアウトすると、完全に実行されますが、スコアは明らかに更新されません。もともと \(score) を持っていましたが、それが問題かどうかを確認するために静的テキストに変更しました。なぜこれがこのように機能するのかについてのアイデアはありますか?
100 の代わりに \(score) を指定すると、スコアが更新されるたびにゲームが一時停止 (一時的にフリーズ) します。
update
ゲーム設定での scoreLabel の初期化
scoreLabel.fontsize = 50
scoreLabel.text = "Score: 0"
scoreLabel.name = "scoreLabel"
scoreLabel.verticalAlignmentMode = .Center
scoreLabel.position = CGPoint( x: size.width / 2, y: size.height - scoreLabel.frame.size.height + 3)
hudLayerNode.addChild(scoreLabel)
scoreFlashAction = SKAction.sequence([SKAction.scaleTo(1.5, duration: 0.1), SKAction.scleTo(1.0, duration: 0.1)])
scoreLabel.runAction(SKAction.repeatAction(scoreFlashAction, count: 20))
アップデート
どういうわけかそれは間違いなくフォントの種類です。fontName を削除し、通常のラベルを作成しただけで問題はありませんが、もちろんフォントが間違っています。