我正在使用Swift和SpriteKit开发游戏。我有一个ViewController,它有一个用于场景/游戏的SKView和一个用于得分的UILabel。出于某种原因,每当我更新ViewController上的UILabel文本时,我的场景都会冻结并且不会更新。
以下是我在ViewController和Scene之间进行通信的代码
protocol ControllerDelegate {
updateScore(score: Int)
}
class ViewController: ControllerDelegate {
@IBOutlet var gameView: SKView!
@IBOutlet weak var scoreLabel: UILabel!
func viewDidAppear() {
let scene = GameScene()
scene.delegate = self
self.gameView.presentScene(scene)
}
func updateScore(score: Int) {
self.scoreLabel.text = "SCORE: \(score)"
}
}
每当我在GameScene中调用delegate.updateScore
时,它就会冻结。