gpt4 book ai didi

swift - 在界面生成器的 SKScene 中隐藏节点

转载 作者:行者123 更新时间:2023-11-28 06:42:46 24 4
gpt4 key购买 nike

我在界面生成器中完成了几个 SKScene,其中我在屏幕上可见的 SKScene 部分中放置了几个 Sprite

我希望一些 Sprite 只在稍后出现,所以我开始在 didMoveToView 方法的开头隐藏它们。

override func didMoveToView(view: SKView)
{
// Reading of the sprites created in the SKScene in the interface builder
BackgroundLayer = self.childNodeWithName("BackgroundLayer") as! SKSpriteNode
LettreB = self.childNodeWithName("B0") as! SKSpriteNode
LettreB.hidden = true
LettreR = self.childNodeWithName("R0") as! SKSpriteNode
LettreR.hidden = true
LettreI = self.childNodeWithName("I0") as! SKSpriteNode
LettreI.hidden = true
}

我遇到的问题是,在运行该应用程序时,我会非常短暂地看到所有 Sprite ,然后才隐藏它们。

即使我在界面生成器中将 blendfactor 设置为 1(并将 blendmode 设置为 Alpha), Sprite - 然后在界面生成器中不再可见 - 非常短暂地出现然后在运行应用程序时消失

除了将 Sprite 放在可见区域之外并在我需要它们出现时移动它们之外,有没有办法避免这种情况?我应该在调用 didMoveToView 之前将代码放在其他地方吗?

注意:这个问题只发生在直接从设备运行应用程序时,而不是当应用程序通过 Xcode 启动时,我猜是出于某些性能原因。

最佳答案

通常使用大写的属性名称被认为是一种不良态度,您应该使用 backgroundLayer 或 lettreB

这种改变可以通过不同的方式来实现(在 SKScene 初始化方法中,或者通过自定义你的 SKSpriteNode 并改变他的初始化),其中之一是在之前的 SKSceneUIViewController 中创建场景并调用它:

 override func viewDidLoad() {
super.viewDidLoad()
print("---")
print("∙ \(NSStringFromClass(self.dynamicType))")
print("---")
let skView = self.view as! SKView
if let scene = MyScene(fileNamed:"MyScene") {
var letter = scene.childNodeWithName("LettreB") as! SKSpriteNode //for example
letter.hidden = true //for example
skView.presentScene(scene)
}
}

关于swift - 在界面生成器的 SKScene 中隐藏节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37480429/

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