【发布时间】:2017-10-23 14:28:53
【问题描述】:
在我的 SpriteKit 应用程序中,我有 3 个不同的场景,我想为每个场景设置特定的设置。 我的意思是我想在 MainPage 和 SomeInfoScene 中设置可见的 AdBanner,而不是在 GameScene 中。我怎样才能做到这一点? 这是我的代码:
override func viewDidLoad() {
super.viewDidLoad()
if let view = self.view as! SKView? {
let mainPage = SKScene(fileNamed: "MainPage")!
mainPage.name = "MainPage"
let someInfoPage = SKScene(fileNamed: "SomeInfoScene")!
someInfoPage.name = "SomeInfoScene"
let gameScene = SKScene(fileNamed: "GameScene")!
gameScene.name = "GameScene"
view.presentScene(mainPage)
if let currentScene = view.scene {
if currentScene.name == mainPage.name {
print("MainPage")
adBannerView.isHidden = false
}
if currentScene.name == someInfoPage.name {
print("SomeInfoScene")
adBannerView.isHidden = false
}
if currentScene.name == gameScene.name {
print("GameScene")
adBannerView.isHidden = true
}
}
}
}
【问题讨论】:
-
根据这段代码,你最后的if语句是没有意义的,当前场景将永远是
MainPage -
view.presentScene(mainPage)行表示"MainPage"场景——这是现在由view.scene返回的场景。因此,[2] 中的 [1] 中的代码永远不会被触发。您可能需要检查您的游戏控制器逻辑... -
是的,但是当我打开 SomeInfoScene 或 GameScene 时,它不应该运行代码 [1] 和 [2] 吗?
-
我想为每个场景设置不同的设置,我该怎么做?
-
嘿伙计,我建议您针对这个特定问题打开 另一个 问题(并链接回这个问题以供快速参考)。这样你会得到更好的结果......(请不要忘记接受/赞成我的回答)。谢谢兄弟!
标签: ios swift sprite-kit skscene