0

I copied the code below from a tutorial. However, an error about addChild pops up. It says, "Cannot convert value of type 'SKAudioNode' to expected argument type 'UIViewController'". How can I fix this?

import AVFoundation

import SpriteKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    func didMove(to view: SKView) {
        let music = SKAudioNode(fileNamed: "3D_Beep.mp3")
        addChild(music)

        music.isPositional = true
        music.position = CGPoint(x: -1024, y: 0)

        let moveForward = SKAction.moveTo(x: 1024, duration: 2)
        let moveBack = SKAction.moveTo(x: -1024, duration: 2)
        let sequence = SKAction.sequence([moveForward, moveBack])
        let repeatForever = SKAction.repeatForever(sequence)

        music.run(repeatForever)
    }
}
4

1 回答 1

0

我假设教程中的某个地方缺少一个场景,您可能应该将音乐添加到场景中。像这样的东西。

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    self.scene  = SKSCene(filenamed: "asdf")
}
...

let music = SKAudioNode(fileNamed: "3D_Beep.mp3")
self.scene?.addChild(music)

检查这篇文章作为参考

于 2020-10-19T23:05:32.407 回答