2016-02-27 1 views
0

Je fais un jeu avec le kit Sprite, j'ai récemment ajouté de la musique de fond au jeu et cela fonctionne, mais je veux mettre un bouton muet qui peut permettre au joueur d'arrêter et de jouer la musique de fond pendant que le jeu tourne il n'aime pas ça. Merci.Comment puis-je mettre un bouton de sourdine pour la musique de fond dans mon jeu Sprite Kit avec Swift 2 (Xcode 7)?

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() 





     } 
+2

recherche - Bouton dans le kit Sprite et Stop/Pause SKAudioNode – Knight0fDragon

+0

double possible de [Swift Spritekit Ajout du bouton Programaticly] (http://stackoverflow.com/questions/26225236/swift-spritekit-additional-button-programaticly) – Stefan

Répondre

1

Pour créer un bouton ajouter ceci 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) 

J'utilise le SKLabel pour montrer le symbole de pause et un récipient pour augmenter la surface de contact. HUD est un rectangle de type SKNode en haut de mon jeu. Vous devez ajouter les nœuds à un élément de votre jeu et changer la taille et la position.

Pour réagir sur la touche:

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 .... 
     } 
    } 
}