没有任何错误的声音

时间:2016-12-20 18:37:08

标签: ios swift sprite-kit

我按下按钮时尝试添加声音,但是当按下按钮时没有声音。终端没有错误。

我已经尝试在另一台计算机上编译,并在iPhone上进行调试。 没有声音持续存在。

请帮我解决这个问题。

class MenuScene : SKScene {
    let txtAtlas : SKTextureAtlas = SKTextureAtlas(named: "UI.atlas")
    let txtAtlas2 : SKTextureAtlas = SKTextureAtlas(named: "mapbc.atlas")
    let startBut = SKSpriteNode()
    let tssound = SKAction.playSoundFileNamed("tssound.wav", waitForCompletion: false)

    override func didMove(to view: SKView) {
        self.anchorPoint = CGPoint(x: 0.5, y: 0.5)
        self.backgroundColor = UIColor.black

        let logo = SKLabelNode(fontNamed: "Helvetica")
        logo.text = "Train Control"
        logo.position = CGPoint(x: 0, y: 100)
        logo.fontSize = 60
        logo.fontColor = UIColor.green
        self.addChild(logo)

        startBut.texture = txtAtlas.textureNamed("stbut.png")
        startBut.size = CGSize(width: 230, height: 85)
        startBut.position = CGPoint(x: 0, y: -20)
        startBut.name = "StartBtn"
        self.addChild(startBut)

        let startText = SKLabelNode(fontNamed: "AvenirNext-HeavyItalic")
        startText.text = "Start Manage!"
        startText.verticalAlignmentMode = .center
        startText.position = CGPoint(x: 0, y: 2)
        startText.fontSize = 30
        startText.name = "StartBtn"
        startBut.addChild(startText)

        let bcmap = SKSpriteNode()
        bcmap.texture = txtAtlas2.textureNamed("mapbc.png")
        bcmap.zPosition = -1
        bcmap.size = CGSize(width: 400.0, height: 350.0)
        bcmap.position = CGPoint(x: -100, y: 0)
        bcmap.alpha = 0.7
        self.addChild(bcmap)

        let stbutaction = SKAction.sequence([SKAction.fadeAlpha(to: 0.7, duration: 0.9),
                                             SKAction.fadeAlpha(to: 1.0, duration: 0.9)])
        startBut.run(SKAction.repeatForever(stbutaction))
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        for touch in (touches) {
            let location = touch.location(in: self)
            let nodeTouched = atPoint(location)

            if nodeTouched.name == "StartBtn" {
                // Player touched the start text or button node
                self.view?.presentScene(GameScene(size: self.size))
                self.run(tssound)
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您可能应该在GameScene内初始化并运行声音,例如当场景加载时。您正试图在转换到MenuScene

之后在GameScene上运行并不存在的声音