第一篇文章,在写作之前确实尝试寻找答案,但没有一个帖子给我答案,所以我问。 我敢打赌这很简单,只是我看不到。
我有一个得分变量。我想每次发生碰撞时就加1。 是这样写的
var score:Int = 0
override func didMoveToView(view: SKView) {
var scoreOnScreen = SKLabelNode(text:"(\score)")
然后,在碰撞函数中,子弹和敌人被移除后
func bulletDidCollideWithEnemy(bullet: SKSpriteNode, enemyOne: SKSpriteNode) {
score++
bullet.removeFromParent()
enemyOne.removeFromParent()
}
但在屏幕上,它仍然是 0。
为什么?
最佳答案
您没有在 UI 上更新您的 score
。您只是在更新变量 score
。编写代码以更新 bulletDidCollideWithEnemy 中的
scoreOnScreen
func bulletDidCollideWithEnemy(bullet: SKSpriteNode, enemyOne: SKSpriteNode) {
score++
scoreOnScreen.text = "\(score)"
bullet.removeFromParent()
enemyOne.removeFromParent()
}
关于Swift var 没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26567863/