Swift scoreLabel.text使游戏暂停

Swift scoreLabel.text使游戏暂停,swift,sprite-kit,sklabelnode,Swift,Sprite Kit,Sklabelnode,我正在设置标签 let scoreLabel = SKLabelNode(fontNamed: "Edit Undo Line BRK") 在函数中 func increaseScoreBy(increment: Int) { score += increment scoreLabel.text = "Score: 100" scoreLabel.removeAllActions() scoreLabel.runAction(scoreFlashAction)

我正在设置标签

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”,那么它将运行得非常完美,但分数显然不会更新。最初我有它\(分数),但我把它改为静态文本,看看这是否是问题所在。你知道为什么会这样吗

有一件事,如果它的\(分数)不是100,它会在每次分数更新时暂停(暂时冻结)游戏,如果它是硬编码的,它只会在第一次冻结

update
在游戏设置中初始化记分标签

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,只做了一个常规标签,没有问题,但字体当然是错误的。

您的问题实际上是字体和
.text
。如果需要,看起来可以加载字体。所以你需要设置一个字体变量来保存你的字体,以后你可以随时访问它

let font = UIFont(name: "Edit Undo Line BRK", size: yourSize)
我建议您在应用程序启动时设置它,并将其保存在一个单例中。 然后您可以访问如下字体:

let scoreLabel = SKLabelNode(fontNamed: font?.fontName)

现在花的时间应该少多了。

有人删除了答案,所以又来了

多亏了


想知道发生了什么事。虽然名称是正确的,但我没有将字体“添加”到应用程序中。要执行此操作,请单击目标和“信息”选项卡。在客户ios目标属性下创建一个新的“应用程序提供的字体”键。展开它并添加字体名称作为项的值。别忘了将ttf复制到应用程序文件夹中,并确保在复制时选择了“复制”和“目标”。

我尝试过这样做,但它一直告诉我游戏场景没有字体。我是swift的新手,所以我不确定到底发生了什么。它仍然显示GameSecene。Type没有名为“font”的成员,我在声明中加入了let font=UIFont(名称:“Edit Undo Line BRK”,大小:50)