gpt4 book ai didi

ios - 在节点暂停的情况下开始场景

转载 作者:行者123 更新时间:2023-11-28 08:20:11 25 4
gpt4 key购买 nike

我正在开发一款基于 SpriteKitSwift 的 iOS 游戏。从 iOS 7.1 定位

我在游戏中实现短音的方法是使用 SKAction.playSoundFileNamed 方法运行操作,该方法在专门为此目的添加的普通层节点上执行:

let SoundsLayerNode = SKNode()

self.addChild(SoundsLayerNode)

SoundsLayerNode.runAction(soundXXX)

通过暂停整个节点 (SoundsLayerNode.paused = true) 非常容易使 FX 声音静音,并再次打开声音,取消暂停节点 (SoundsLayerNode.paused =错误)

当我尝试在节点暂停的情况下启动场景时出现问题。在 func didMoveToView 方法中,我设置了 SoundsLayerNode.paused = true 但在第一个 Spritekit 循环开始后,节点自动取消暂停

似乎,SpriteKit 强制场景(自身)在 didmovetoview 完成后取消暂停,因此它的所有后代都取消暂停,从而引发令人不快的副作用在声音层节点上

你知道怎么解决吗?

谢谢

最佳答案

一种解决方案是在节点上运行一个 SKAction 以在一定时间(例如 0.1 秒)后暂停它。

var pauseAction = SKAction.sequence([SKAction.wait(forDuration: 0.1), SKAction.pause()])
node.run(pauseAction)

你可以试试 0.1,看看你能把它调到多低,它仍然可以工作。

如果这不起作用,您可以在 GameScene 中像这样解决:

var pauseToggle = true

override func didFinishUpdate()
{
if(pauseToggle){
SoundsLayerNode.paused = true
pauseToggle = false
}
}

这是一种垃圾方式,但也应该有效。

关于ios - 在节点暂停的情况下开始场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41552635/

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