我在不同级别创建了一款游戏。如果用户到达某个gameScore,则会弹出一个alertButton(已经有效),但是一旦用户切换场景,该按钮就会消失。使用我的代码,按钮不会消失。如何让图像只出现一次?
这是我的代码:
var alertButton = SKSpriteNode.init(imageNamed: "AlertButton")
var totalGameScore = 0
class Game: SKScene {
override func didMove(to view: SKView) {
if totalGameScore > 50 { //alert button appears and should disappear after scene changes
self.addChild(alertButton)
}
if totalGameScore > 100 { //alert button appears again and should disappear after scene changes
self.addChild(alertButton)
}
}
}
答案 0 :(得分:0)
您的逻辑是,一旦totalGameScore>出现警告按钮; 50.当totalGameScore>时,第二个if实际上将添加第二个按钮。 100因为两个ifs都会执行。
要处理这种情况,你应该有两个标志:
var hasShown50ScoreButton = false
var hasShow100ScoreButton = false
然后你检查:
class Game: SKScene {
override func didMove(to view: SKView) {
if totalGameScore > 50 && hasShown50ScoreButton == false {
self.addChild(alertButton)
hasShown50ScoreButton = true
} else if totalGameScore > 100 && hasShown100ScoreButton == false {
self.addChild(alertButton)
hasShown100ScoreButton = true
} else if alertButton.superview != nil {
aleterButton.removeFromSuperview()
}
}