我正在创建一个游戏,我正在努力保留所有敌人的记录,但我的SKLabel节点没有更新。这是我实施它的方式
class GameScene: SKScene, SKPhysicsContactDelegate {
var Enemy1KillCounter:Int = 0
var Enemy1KillCounterLabel = SKLabelNode ()
override func didMoveToView(view: SKView) {
createEnemyKilledLabel()
}
func createEnemyKilledLabel() {
Enemy1KillCounterLabel.text = "\(Enemy1KillCounter)"
Enemy1KillCounterLabel.fontSize = 65
Enemy1KillCounterLabel.fontColor = SKColor .blackColor()
Enemy1KillCounterLabel.position = CGPointMake(400, 400)
self.addChild(Enemy1KillCounterLabel)
}
func updateEnemy1KillCounter() {
Enemy1KillCounter = Enemy1KillCounter + 1
print(Enemy1KillCounter)
}
// I use the next method because i call this method in my enemy class
when the enemy is "killed"
func Enemy1DieG () {
updateEnemy1KillCounter()
}
有人知道为什么我的标签没有更新吗?
答案 0 :(得分:0)
更新Enemy1KillCounter
时,您还需要使用新值更新Enemy1KillCounterLabel.text
。此外,我不知道你的createEnemyKilledLabel()
被叫到哪里。确保在某处调用它。
附注 - 变量名通常以小写字母开头,如enemy1KillCounterLabel
。遵循标准使其他人更容易阅读代码......
答案 1 :(得分:0)
更新Enemy1KillCounter变量后更新标签文本。
func updateEnemy1KillCounter() {
Enemy1KillCounter = Enemy1KillCounter + 1
Enemy1KillCounterLabel.text = "\(Enemy1KillCounter)"
print(Enemy1KillCounter)
}