【问题标题】:How can I put a mute button for background music in my Sprite Kit Game with Swift 2(Xcode 7)?如何使用 Swift 2(Xcode 7)在我的 Sprite Kit 游戏中为背景音乐设置静音按钮?
【发布时间】:2016-02-27 04:38:58
【问题描述】:

我正在使用 Sprite 套件制作游戏,我最近在游戏中添加了背景音乐并且它可以工作,但我想放置一个静音按钮,可以让玩家在游戏运行时停止并播放背景音乐万一他不喜欢。谢谢。

import AVFoundation

class GameScene: SKScene, SKPhysicsContactDelegate {
  var backgroundMusic = SKAudioNode()

func restartScene(){

    self.removeAllChildren()
    self.removeAllActions()
    died = false
    gameStarted = false
    score = 0
    createScene()
}



func createScene(){
backgroundMusic = SKAudioNode(fileNamed: "Musicnamefile.mp3")
    addChild(backgroundMusic)
}





override func didMoveToView(view: SKView) {
    /* Setup your scene here */


    createScene()





       }

【问题讨论】:

标签: sprite-kit swift2 avfoundation xcode7 background-music


【解决方案1】:

要创建一个按钮,请在 didMoveToView 中添加:

    // pause button
    let pauseButton = SKLabelNode()
    let pauseContainer = SKSpriteNode()
    pauseContainer.position = CGPointMake(hud.size.width/1.5, 1)
    pauseContainer.size = CGSizeMake(hud.size.height*3, hud.size.height*2)
    pauseContainer.name = "PauseButtonContainer"        // pause button
    let pauseButton = SKLabelNode()
    let pauseContainer = SKSpriteNode()
    pauseContainer.position = CGPointMake(hud.size.width/1.5, 1)
    pauseContainer.size = CGSizeMake(hud.size.height*3, hud.size.height*2)
    pauseContainer.name = "PauseButtonContainer"
    hud.addChild(pauseContainer)

    pauseButton.position = CGPointMake(hud.size.width/2, 1)
    pauseButton.text="I I"
    pauseButton.fontSize=hud.size.height
    //pauseButton.fontColor = UIColor.blackColor()
    pauseButton.horizontalAlignmentMode = SKLabelHorizontalAlignmentMode.Center
    pauseButton.name="PauseButton"
    hud.addChild(pauseButton)

我使用 SKLabel 来显示暂停符号和一个容器来增加触摸区域。 HUD 是我游戏顶部的一个 SKNode 类型的矩形。您必须将节点添加到游戏中的元素并更改大小和位置。

对触摸做出反应:

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    for touch: AnyObject in touches {
        let location = touch.locationInNode(self)
        let node = self.nodeAtPoint(location)

        if (node.name == "PauseButton" || node.name == "PauseButtonContainer") {
            Insert your code here ....
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多