如何使用 Swift 2(Xcode 7)在我的 Sprite Kit 游戏中为背景音乐设置静音按钮?

Posted

技术标签:

【中文标题】如何使用 Swift 2(Xcode 7)在我的 Sprite Kit 游戏中为背景音乐设置静音按钮?【英文标题】:How can I put a mute button for background music in my Sprite Kit Game with Swift 2(Xcode 7)? 【发布时间】: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 中的按钮和停止/暂停 SKAudioNode Swift Spritekit Adding Button Programaticly的可能重复 【参考方案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 ....
        
    

【讨论】:

以上是关于如何使用 Swift 2(Xcode 7)在我的 Sprite Kit 游戏中为背景音乐设置静音按钮?的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Xcode 7.3.1 在我的 Swift 2 项目中检查带有“po”的变量 - 加载辅助函数时出错

按下 xcode 7 / Swift 2 时如何更改按钮的图像? [复制]

CocoaPods 在 Xcode 7 Swift 2.2 中没有这样的模块

如何使用 Swift 2 和 Xcode 7 读取 Playground 文本资源文件

将文档/收件箱文件移动到另一个位置 - Xcode 7、Swift 2

如何使用 Xcode 和 Swift 在我的导航栏中添加标题?