2016-04-11 10 views
0

Ich habe Sound-Taste (On/Off) in Hauptszene und seine funktioniert perfekt aber ich habe ein Problem, aus dem Hintergrund Musik spielen, wenn ich disqualifiziert wurde, ich auf den Hauptbildschirm zurückkehren, aber das Bild der Taste ändert die Musik ist eingeschaltet und bleibt auf dem Bild der Musik ist ausgeschaltet.Wie NSUserdefaults zu Bild-Schaltfläche in Spritekit

Haupt Szene:

var SoundOnOff = SKSpriteNode() 

override func didMoveToView(view: SKView) { 

    backgroundColor = UIColor(red:0.09, green:0.63, blue:0.52, alpha:1.0) 


    //Main Scene: 

    SoundOnOff.texture = SKTexture(imageNamed:"Sound-on.png") 
    SoundOnOff.position = CGPoint(x: self.size.width/2 - 40 , y: self.size.height/2 - 500) 
    SoundOnOff.size = CGSizeMake(60 , 60) 
    SoundOnOff.runAction(SKAction.moveToY(140, duration: 0.5)) 
    SoundOnOff.removeFromParent() 
    addChild(SoundOnOff) 


    } 

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 

    let touch = touches.first 
    let location = touch!.locationInNode(self) 



    if(SoundOnOff.containsPoint(location)) { 
      // --------------------------------------------- 
      // Play Background Music 
      // --------------------------------------------- 

if ((NSUserDefaults.standardUserDefaults().objectForKey("onoroff")) !== true) 
      { 
       NSUserDefaults.standardUserDefaults().setBool(true, forKey: "onoroff") 
        Singleton.sharedInstance().pauseBackgroundMusic() 
        SoundOnOff.texture = SKTexture(imageNamed:"Sound-off.png") 

       }else { 
        NSUserDefaults.standardUserDefaults().setBool(false, forKey: "onoroff") 
        Singleton.sharedInstance().resumeBackgroundMusic() 
        SoundOnOff.texture = SKTexture(imageNamed:"Sound-on.png") 
       } 
      } 
     } } 

    } 
+0

Genauer gesagt ... Sagen Sie, dass Tasten funktionieren, wenn Sie sie berühren, aber wenn Sie zum Hauptbildschirm zurückkehren (was wahrscheinlich eine andere Szene ist), wird die falsche Tastenstruktur angezeigt? – Whirlwind

+0

Worng Schaltfläche Textur. –

+0

:) Okay, das habe ich schon herausgefunden. Ich möchte Sie bitten, etwas genauer auf den Teil des Codes einzugehen, an dem Sie Probleme haben. Also, funktioniert dieser Code von touchesBegan für dich? Wenn ja, was ist der Code, der nicht funktioniert? Wenn nein, nun, ich werde es genauer betrachten ... – Whirlwind

Antwort

0

Grundsätzlich haben Sie in Ihrem Menü Szene zu überprüfen, ob Musik ein- oder ausgeschaltet ist, und auf der Grundlage, dass entsprechende Textur zu zeigen. Momentan scheint es, dass Sie diesen Check nicht innerhalb einer Menüszene vornehmen.

TIPP: Offensichtlich wurde Ihre Singleton Klasse als Singleton implementiert. Und wenn alles richtig gemacht wird, wird es einmalig und lebendig durch die gesamte Lebenszeit der App instanziiert. Es hat also eine Information über den Status "Musik ein/aus". Was ich zeigen wollte, ist, dass, wenn die App geschlossen wird, dieser Singleton freigegeben wird. Bevor Sie das tun, können Sie die Informationen über Musik wie NSUserDefaults im permanenten Speicher speichern, damit das nächste Mal, wenn der Benutzer die App öffnet, seine Einstellungen gespeichert werden. Nur ein though ... Das hängt wirklich von dir ab und was du in deiner App anbieten willst.

+0

ich möchte speichern, wenn an oder aus ist und das nächste Mal, wenn Benutzer die App öffnen, hat er seine Einstellungen gespeichert. Sie können mir helfen, es zu schreiben –

+0

@OmerHarel Es ist nur ein einfaches Lesen/schreibe in Benutzerstandardeinstellungen Es gibt eine Menge von Posts über SO darüber ... – Whirlwind

+0

alles was ich brauche, um mein Spiel zu vervollständigen –