使用onEnter方法cocos2d

use*_*574 2 objective-c cocos2d-iphone ios6

我正在开发一款游戏.并在我的游戏中使用音频.对于音频我导入SimpleAudioEngine框架.我在onEnter方法中设置音频,其他声明和编码在init方法中.在onEnter方法中添加音频后,我的屏幕菜单按钮不起作用.在添加之前,一切都运行良好.我不明白我的代码有什么问题.

这是我在onEnter方法中的代码.

- (void)onEnter{
    backgroundMusic=[SimpleAudioEngine sharedEngine];
    [backgroundMusic playBackgroundMusic:@"sonic_title_music.mp3" loop:YES];
    }
- (void)onExit{
[backgroundMusic stopBackgroundMusic];}
Run Code Online (Sandbox Code Playgroud)

这是我的init方法:

- (id)init{
self = [super init];
if (self) {
    controller = (AppController *)[[UIApplication sharedApplication] delegate];
    CGSize size=[[CCDirector sharedDirector]winSize];
    [CCMenuItemFont setFontName:@"Marion"];
    [CCMenuItemFont setFontSize:30];
    CCMenuItem *newGame=[CCMenuItemFont itemWithString:@"New Game" target:self selector:@selector(newGame)];
    CCMenuItem *modes=[CCMenuItemFont itemWithString:@"Modes" target:self selector:@selector(modes)];
    CCMenuItem *help=[CCMenuItemFont itemWithString:@"Help" target:self selector:@selector(help)];
    CCMenuItem *setting=[CCMenuItemFont itemWithString:@"Setting" target:self selector:@selector(setting)];
    menu=[CCMenu menuWithItems:newGame,modes,setting,help, nil];
    [menu alignItemsVerticallyWithPadding:10];
    CCLOG(@"width== %f",size.width);
    if(size.width==320)
        menu.position=ccp(size.width/2, size.height/2);
    else
        menu.position=ccp(size.width/2, size.height/2);
    [self addChild:menu];
}
return self;
Run Code Online (Sandbox Code Playgroud)

}

Lea*_*s2D 5

你必须调用[super onEnter]:

-(void) onEnter
{
    [super onEnter];

    backgroundMusic=[SimpleAudioEngine sharedEngine];
    [backgroundMusic playBackgroundMusic:@"sonic_title_music.mp3" loop:YES];
}
Run Code Online (Sandbox Code Playgroud)

在覆盖任何on*CCNode方法时,需要调用超级实现.