Проблема с копированием объекта SKAudioNode - PullRequest
0 голосов
/ 13 февраля 2019

В настоящее время я предварительно загружаю звуковые эффекты в словарь, например:

soundEffectsDictionary[SoundEffectType: SKAudioNode]

Это позволяет мне предварительно загрузить все звуковые эффекты в игре и запросить звуковой эффект по мере необходимости.Я упрощаю это для демонстрационных целей:

let fxBoom = soundEffectsDictionary [SoundEffectType.fxBoom] !. copy () as!SKAudioNode

Это работает аналогично для SKSpriteNodes, SKTextures и т. Д. Однако, похоже, что SKAudioNode не может создавать копии таким способом.Когда я пытаюсь добавить копии на экран, они не воспроизводятся.

  1. Как правильно скопировать SKAudioNode?Если я хочу играть fxBoom дважды, перекрывая друг друга, мне понадобятся два отдельных узла.Я не хочу загружать файл с диска по соображениям производительности, поэтому я пытаюсь предварительно загрузить звуки.

  2. Есть ли лучший способ достичь того, что я пытаюсьделать здесь?

Заранее спасибо.

РЕДАКТИРОВАТЬ:

Вот простой код, который демонстрирует проблему:

    let audioNode = SKAudioNode(fileNamed: "fxBoom.mp3")
    self.addChild(audioNode) //audio plays, looping indefinitely


    let audioNode = SKAudioNode(fileNamed: "fxBoom.mp3")
    let audioNode2 = audioNode.copy() as! SKAudioNode
    self.addChild(audioNode2) // audio does not play
    audioNode2.run(SKAction.play()) // no difference
    audioNode2.isPaused = false // no difference
...