静音问题cocos2d

时间:2011-02-15 16:27:08

标签: iphone audio cocos2d-iphone

我对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;

}

  • (void)musicOff:(id)sender { [[SimpleAudioEngine sharedEngine] pauseBackgroundMusic];

}

  • (void)musicOn:(id)sender { [[SimpleAudioEngine sharedEngine] resumeBackgroundMusic]; }

问题是当我回到菜单上时声音再次开始,即使它在设置场景中静音。

最好的解决方法是什么?

干杯

2 个答案:

答案 0 :(得分:1)

我今天回答了类似的问题,我的回答也值得你Passing audio between scenes cocos2d

答案 1 :(得分:1)

创建一个存储当前卷状态的appdelegate变量。并且不要忘记在每个场景的init中包含setBackgroundMusicVolume代码。

类似的东西:

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

其中appdelegate.volume是我的appdelegate音量变量。当您静音时​​,将变量设置为0,取消静音为1时。

它有效