我在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;
}
[[SimpleAudioEngine sharedEngine] pauseBackgroundMusic];
}
[[SimpleAudioEngine sharedEngine] resumeBackgroundMusic];
问题是,当我返回菜单时,即使在设置场景中静音,声音也会再次开始。
解决此问题的最佳方法是什么?
干杯
最佳答案
创建一个appdelegate变量来存储当前的音量状态,并且不要忘记在每个场景的初始化中包含setBackgroundMusicVolume代码。
就像是 :
[[SimpleAudioEngine sharedEngine] setBackgroundMusicVolume:appDelegate.volume ];
其中appdelegate.volume是我的appdelegate音量变量。静音时,将变量设置为0,取消静音时设置为1。
有用