为SKAudioNode

时间:2019-02-12 17:20:42

标签: sprite-kit skaction swift-extensions skaudionode

我决定中断与SKAction.playSoundFileNamed的痛苦关系,并继续在我们的项目中使用SKAudioNodes-突破点是它们完全被中断打断,没有任何一致性。

我们正在尝试为SKAction s.t创建扩展。它将模拟播放SKAudioNodes而不会增加延迟,类似于在playSoundFileNamed中将waitForCompletion属性设置为false时。但是,我们要添加SKAudioNode,然后在短时间内(3.0 s)对其进行处理,但是在扩展中,这将使3.0 s的延迟加到任何动作上。我认为我们必须有此延迟,然后将其删除,因为否则我们将不必要地累积SKAudioNodes。这是我们当前的代码:

func playAudioNode(node: SKSpriteNode?, sound: SoundType, delay: Double)
{
    if node == nil
    {
        return
    }

    let audioNode = audioNodeDictionary[sound]!.copy() as! SKAudioNode

    node!.addChild(audioNode)

    let playSound = SKAction.run
    {
        audioNode.run(.play())
    }

    node!.run(SKAction.sequence([SKAction.wait(forDuration: delay), playSound, SKAction.wait(forDuration: 3.0), SKAction.removeFromParent()]))
}

是否有人以类似的特殊方式使用SKAudioNodes并在SKAction序列中使用它们,并且对实现此目标的最佳方法有任何想法吗?

0 个答案:

没有答案