Проблема с копированием объекта SKAudioNode

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

soundEffectsDictionary[SoundEffectType: SKAudioNode]

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

Пусть fxBoom = soundEffectsDictionary[SoundEffectType.fxBoom]!.copy() как! 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

0 ответов

Другие вопросы по тегам