我正在开发一款游戏。并在我的游戏中使用音频。 对于音频我导入SimpleAudioEngine框架。我在onEnter方法中设置音频,其他声明和编码在init方法中。在onEnter方法中添加音频后,我的屏幕菜单按钮不起作用。在添加之前,一切都运行良好。我不明白我的代码有什么问题。
这是我在onEnter方法中的代码。
- (void)onEnter{
backgroundMusic=[SimpleAudioEngine sharedEngine];
[backgroundMusic playBackgroundMusic:@"sonic_title_music.mp3" loop:YES];
}
- (void)onExit{
[backgroundMusic stopBackgroundMusic];}
这是我的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;
}
答案 0 :(得分:5)
您必须致电[super onEnter]:
-(void) onEnter
{
[super onEnter];
backgroundMusic=[SimpleAudioEngine sharedEngine];
[backgroundMusic playBackgroundMusic:@"sonic_title_music.mp3" loop:YES];
}
在覆盖任何on * CCNode方法时,需要调用超级实现。