gpt4 book ai didi

ios - SpriteKit项目中如何检测当前场景

转载 作者:搜寻专家 更新时间:2023-11-01 07:08:03 25 4
gpt4 key购买 nike

在我的 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
}
}
}
}

最佳答案

这由 scene 跟踪SKView 的属性(property)类(class)。例如:

if let view = self.view as? SKView {
if let currentScene = view.scene {
print("Current scene is: \(currentScene)")
else {
print("Current scene is nil")
}
}

顺便说一句,你的第一行真的应该是:

if let view = self.view as? SKView { ...

这是在 if 语句中尝试向下转换的标准/惯用方法。


更新。您还需要设置 name属性,如果您打算在您的游戏代码中使用它(在 *.sks 文件中直接在您的代码中)。例如:

let scene = SKScene(fileNamed: "MainPage")!
scene.name = "MainPage"
view.presentScene(scene)

关于ios - SpriteKit项目中如何检测当前场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46891870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com