2011-02-15 97 views
2

我在cocos2d的設置場景中遇到了一些小問題,爲此我可以通過點擊按鈕來暫停和恢復某些聲音。屏蔽聲音問題cocos2d

-(id)init{ 
if((self=[super init])){ 

    //menu background 
    CCSprite *bg = [CCSprite spriteWithFile:@"settingsbackground.jpg"]; 
    bg.anchorPoint = ccp(0, 0); 
    bg.position = ccp(0, 0); 
    [self addChild:bg z:0]; 

    CCMenuItem *Back = [CCMenuItemImage itemFromNormalImage:@"backbutton.gif" selectedImage: @"backbutton.gif" target:self selector:@selector(backToMainMenu:)]; 
    CCMenuItem *On = [CCMenuItemImage itemFromNormalImage:@"soundon1.gif" selectedImage: @"soundon1.gif" target:self selector:@selector(musicOn:)]; 
    CCMenuItem *Off = [CCMenuItemImage itemFromNormalImage:@"soundoff1.png" selectedImage: @"soundoff1.png" target:self selector:@selector(musicOff:)]; 

    CCMenu *BackButton = [CCMenu menuWithItems: Back, nil]; 
    BackButton.position = ccp(25, 295); 

    CCMenu *ToggleButtonOn = [CCMenu menuWithItems: On, nil]; 
    ToggleButtonOn.position = ccp(25, 195); 

    CCMenu *ToggleButtonOff = [CCMenu menuWithItems: Off, nil]; 
    ToggleButtonOff.position = ccp(25, 95); 

    [self addChild:BackButton z:1000]; 
    [self addChild:ToggleButtonOn]; 
    [self addChild:ToggleButtonOff]; 


} 
return self; 

}

  • (無效)musicOff:(ID)發送方{ [[SimpleAudioEngine sharedEngine] pauseBackgroundMusic];

}

  • (無效)musicOn:(ID)發送方{ [[SimpleAudioEngine sharedEngine] resumeBackgroundMusic]; }

問題是,當我回到菜單上時聲音再次開始,即使它在設置場景中靜音。

什麼是解決這個問題的最好方法?

乾杯

回答

1

今天我已經回答過類似的問題,我的答覆很值得你太Passing audio between scenes cocos2d

+0

星爺我時,我的appdelegate量看到這樣的情況,我已經在整個遊戲中播放了音樂。但是我希望能夠按下靜音按鈕,並且整個應用程序的音樂靜音。目前,當我回到菜單時,音樂仍在繼續。 – user618175 2011-02-15 21:04:44

1

創建存儲當前的音量status.And不要忘記在每部初始化setBackgroundMusicVolume代碼的appdelegate變量現場。

類似:

[[SimpleAudioEngine sharedEngine] setBackgroundMusicVolume:appDelegate.volume ]; 

其中appdelegate.volume是variable.When你無聲設定的變量爲0,取消靜音爲1

它的工作原理