我有 2 个标签,当玩家失败时添加;但是,重新启动游戏时,仍保留 1 个标签。我没有看到任何标签可能被意外复制的代码。
添加标签:
func getScores(x: SKScene) {
//HighScore
if currentScore > highScore
{
Defaults.setInteger(currentScore, forKey: "High Score")
//High Score Particles
//highScoreParticle()
}
//High Score
highScoreLabel = UILabel(frame: CGRect(x: x.frame.midX - 100 , y: x.frame.midY + 70, width: 200, height: 50))
highScoreLabel.textAlignment = NSTextAlignment.Center
highScoreLabel.text = "HighScore: \(Defaults.valueForKey("High Score")!)"
highScoreLabel.font = UIFont(name: "Helvetica Neue UltraLight", size: 30)
highScoreLabel.textColor = UIColor.whiteColor()
x.view?.addSubview(highScoreLabel)
//Current Score
currentScoreLabel = UILabel(frame: CGRect(x: x.frame.midX - 50 , y: x.frame.midY, width: 100, height: 50))
currentScoreLabel.textAlignment = NSTextAlignment.Center
currentScoreLabel.text = "Score: \(currentScore)"
currentScoreLabel.font = UIFont(name: "Helvetica Neue UltraLight", size: 30)
currentScoreLabel.textColor = UIColor.whiteColor()
x.view?.addSubview(currentScoreLabel)
}
删除标签:
func resetGame(scene: SKScene) {
//Removes Labels
startLabel.removeFromSuperview()
currentScoreLabel.removeFromSuperview()
highScoreLabel.removeFromSuperview()
//Remove everything off scene
scene.removeAllChildren()
scene.removeAllActions()
//Reset Variables
currentScore = 0
}
highScoreLabel
不会从场景中删除
最佳答案
您正在将 UILabel 添加到场景 View Controller 。场景无法控制这一点。您需要创建一个 SKLabelNode 并使用 addChild
关于ios - Swift SpriteKit 标签没有被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34772618/