我的标签不会更新并导致我的游戏崩溃
My label won't update and is causing my game to crash
我对 swift 和一般编码还很陌生,非常感谢您的帮助!我有一个 CCLabelTTF 作为某种记分器,它应该在你每次通过和障碍物时更新。碰撞正在发生,我的控制台中的点数似乎在正确增加,但我正在尝试使用它来更新屏幕上显示的实际 CCLabelTTF:
func ccPhysicsCollisionBegin(pair: CCPhysicsCollisionPair!, hero nodeA: CCNode!, goal: CCNode!) -> Bool {
goal.removeFromParent()
points++
scoreLabel.string = String(points) //the line appearing to cause the crash
return true
}
我正在使用 SpriteBuilder,Xcode 如果有帮助的话。对不起,如果这是一个愚蠢的问题!
编辑:这是我的 scoreLabel 声明:
weak var scoreLabel : CCLabelTTF!
根据您的标签声明,这可能意味着您的标签是 nil
。确保您正在添加标签。
要对其进行测试,请将代码更改为如下所示:
func ccPhysicsCollisionBegin(pair: CCPhysicsCollisionPair!, hero nodeA: CCNode!, goal: CCNode!) -> Bool {
goal.removeFromParent()
points++
if scoreLabel != nil {
scoreLabel.string = String(points)
print("scoreLabel exists")
} else {
print("scoreLabel is nil")
}
return true
}
如果它在控制台中打印 "scoreLabel is nil",则测试确认您的标签不存在。
编辑
你说你从未初始化过标签,所以将此代码添加到适当的函数中(viewDidLoad:
或 cocos-2d 中的一些等价物——我不太熟悉它):
scoreLabel = CCLabelTTF(string: "", fontName: "FONT_NAME_HERE", fontSize: FONT_SIZE_HERE)
我想通了!我在 spriteBuilder 中建立了一个代码连接,我猜它没有保存,所以它使 scoreLabel 为零。感谢大家的帮助:)
我对 swift 和一般编码还很陌生,非常感谢您的帮助!我有一个 CCLabelTTF 作为某种记分器,它应该在你每次通过和障碍物时更新。碰撞正在发生,我的控制台中的点数似乎在正确增加,但我正在尝试使用它来更新屏幕上显示的实际 CCLabelTTF:
func ccPhysicsCollisionBegin(pair: CCPhysicsCollisionPair!, hero nodeA: CCNode!, goal: CCNode!) -> Bool {
goal.removeFromParent()
points++
scoreLabel.string = String(points) //the line appearing to cause the crash
return true
}
我正在使用 SpriteBuilder,Xcode 如果有帮助的话。对不起,如果这是一个愚蠢的问题!
编辑:这是我的 scoreLabel 声明:
weak var scoreLabel : CCLabelTTF!
根据您的标签声明,这可能意味着您的标签是 nil
。确保您正在添加标签。
要对其进行测试,请将代码更改为如下所示:
func ccPhysicsCollisionBegin(pair: CCPhysicsCollisionPair!, hero nodeA: CCNode!, goal: CCNode!) -> Bool {
goal.removeFromParent()
points++
if scoreLabel != nil {
scoreLabel.string = String(points)
print("scoreLabel exists")
} else {
print("scoreLabel is nil")
}
return true
}
如果它在控制台中打印 "scoreLabel is nil",则测试确认您的标签不存在。
编辑
你说你从未初始化过标签,所以将此代码添加到适当的函数中(viewDidLoad:
或 cocos-2d 中的一些等价物——我不太熟悉它):
scoreLabel = CCLabelTTF(string: "", fontName: "FONT_NAME_HERE", fontSize: FONT_SIZE_HERE)
我想通了!我在 spriteBuilder 中建立了一个代码连接,我猜它没有保存,所以它使 scoreLabel 为零。感谢大家的帮助:)