0

ラベルを設定しています

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 を削除し、通常のラベルを作成しただけで問題はありませんが、もちろんフォントが間違っています。

4

2 に答える 2

0

誰かが答えを削除したので、ここにもう一度

おかげで

SKLabelNode フォントをキャッシュまたはプリロードする方法は?

何が起こっていたのかのヒントのために。名前は正しかったのですが、フォントをアプリに「追加」していませんでした。これを行うには、ターゲットと情報タブをクリックします。お客様の ios ターゲット プロパティの下に、「アプリケーションによって提供されるフォント」の新しいキーを作成します。それを展開し、アイテムの値としてフォント名を追加します。ttf をアプリケーション フォルダーにコピーすることを忘れないでください。その際、コピーとターゲットの両方が選択されていることを確認してください。

于 2015-02-19T13:57:02.387 に答える