2011-02-15 130 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

它的工作原理