gpt4 book ai didi

string - SKLabel.text 整数不更新 - swift

转载 作者:行者123 更新时间:2023-11-28 06:42:00 24 4
gpt4 key购买 nike

crash screen/ error message我正在创建一个游戏,我已经创建了一个整数来跟踪杀死的敌人数量,但是我无法让 UI 上的 sklabel 更新。不管有多少敌人整数一直显示0。以下是我尝试过的一些方法

class GameScene: SKScene, SKPhysicsContactDelegate {

var Enemy1KillCounter = 0
var Enemy1KillCounterLabel = SKLabelNode ()

override func didMoveToView(view: SKView) {

createEnemyKilledLabel()
}

func createEnemyKilledLabel() {

Enemy1KillCounterLabel.fontSize = 65
Enemy1KillCounterLabel.fontColor = SKColor .blackColor()
Enemy1KillCounterLabel.position = CGPointMake(400, 400)
self.addChild(Enemy1KillCounterLabel)
}

func updateEnemy1KillCounter() {

Enemy1KillCounter += 1
Enemy1KillCounterLabel.text = "\(Enemy1KillCounter)"
score = score + 15
//enemy1Killed = true I had tried Boolean values as well
print("updateEnemy1KillCounter")

}
//this method is called in my enemy1 class when its "killed"
func Enemy1DieG () {

updateEnemy1KillCounter()

}
}

我也尝试过使用带有 bool 值的更新方法,涉及多种不同的方式,但都没有奏效。

    override func update(currentTime: CFTimeInterval) {

if enemy1Killed {Enemy1KillCounter += 1}
Enemy1KillCounterLabel.text = "\(Enemy1KillCounter)"

}

这是我的敌人类,我在这里调用“enemy1DieG”方法

我在接触方法中调用了 hit 方法,但我知道这不是问题,因为当敌人被击中 5 倍时被“杀死”,所以调用了 enemy1die 和 killCounter 方法

class Enemy1: SKNode {

var Enemy1Health:Int = 50

func hit() ->Bool {

Enemy1Health -= 10
Bullet1GoAway = true

if ( Enemy1Health <= 0 ) {

Enemy1Die()
return true
} else {
return false
}
}
func Enemy1Die () {
self.removeFromParent()
Enemy1KillCounter()
}

func Enemy1KillCounter (){
GameScene().Enemy1DieG()
}
}

它是如此奇怪,所有的方法都被调用我在每个方法上使用打印值来确保但我的整数没有在我的 UI 中更新它只是一直显示 0。这可能是一个如此简单的答案,但我一直想念它,如果有人可以提供帮助,那就太好了。

最佳答案

Enemy1KillCounter() 中你写

GameScene().Enemy1DieG()

没有使用屏幕上显示的 GameScene。

相反,您正在临时创建一个新的空白屏幕,在其上调用 Enemy1DieG() 然后他们将其摧毁。

请替换这个

func Enemy1KillCounter (){
GameScene().Enemy1DieG()
}

有了这个

func Enemy1KillCounter() {
guard let gameScene = self.scene as? GameScene
else { fatalError("Current node is not inside a GameScene") }
gameScene.Enemy1DieG()
}

关于string - SKLabel.text 整数不更新 - swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37687732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com