无法运行使用cocos2d iphone编写的应用程序
我有三层a、b和c a的主要代码:无法运行使用cocos2d iphone编写的应用程序,iphone,cocos2d-iphone,Iphone,Cocos2d Iphone,我有三层a、b和c a的主要代码: -(id) init { // always call "super" init // Apple recommends to re-assign "self" with the "super" return value if( (self=[super init] )) { CCSprite *sp = [CCSprite spriteWithFile:@"bg.png"]; sp.an
-(id) init
{
// always call "super" init
// Apple recommends to re-assign "self" with the "super" return value
if( (self=[super init] )) {
CCSprite *sp = [CCSprite spriteWithFile:@"bg.png"];
sp.anchorPoint = CGPointZero;
[self addChild:sp z:0 tag:1];
[CCMenuItemFont setFontName: @"Georgia"];
[CCMenuItemFont setFontSize:25];
CCMenuItem *newGame = [CCMenuItemFont itemFromString:@"New Games" target:self selector:@selector(newGame:)];
CCMenuItem *helpGame = [CCMenuItemFont itemFromString:@"Help" target:self selector:@selector(helpGame:)];
CCMenu *menulist = [CCMenu menuWithItems:newGame, helpGame, nil];
[menulist alignItemsVertically];
[self addChild:menulist z:1 tag:2];
}
return self;
}
- (void) newGame:(id) sender
{
CCScene *newscene = [CCScene node];
[newscene addChild:[BScene node]];
[[CCDirector sharedDirector] replaceScene:[CCTransitionShrinkGrow transitionWithDuration:1.2f scene:newscene]];
}
- (void) helpGame:(id) sender
{
CCScene *newscene = [CCScene node];
[newscene addChild:[CScene node]];
[[CCDirector sharedDirector] replaceScene:[CCTransitionShrinkGrow transitionWithDuration:1.2f scene:newscene]];
}
b的主代码
-(id) init
{
if( (self=[super init] )) {
CCSprite *sp = [CCSprite spriteWithFile:@"bg.png"];
sp.anchorPoint = CGPointZero;
[self addChild:sp z:0 tag:1];
[CCMenuItemFont setFontName: @"Georgia"];
[CCMenuItemFont setFontSize:25];
CCMenuItem *newGame = [CCMenuItemFont itemFromString:@"New Games" target:self selector:@selector(newGame:)];
CCMenuItem *helpGame = [CCMenuItemFont itemFromString:@"Help" target:self selector:@selector(helpGame:)];
CCMenu *menulist = [CCMenu menuWithItems:newGame, helpGame, nil];
[menulist alignItemsVertically];
[self addChild:menulist z:1 tag:2];
}
return self;
}
- (void) dealloc
{
[super dealloc];
}
-(void) backCallback: (id) sender
{
CCScene *sc = [CCScene node];
[sc addChild:[AScene node]];
[[CCDirector sharedDirector] replaceScene: [CCTransitionShrinkGrow transitionWithDuration:1.2f scene:sc]];
}
问题是,当我单击进入b的起始名称时,应用程序将退出,因此我如何修复代码?谢谢问题似乎是您的按钮调用了无法识别的self选择器,因为这行代码:
[CCMenuItemFont itemFromString:@"New Games" target:self selector:@selector(newGame:)];
似乎
-(void)newGame:(id)sender
是在另一个对象上声明的,因此您必须在上面的方法中指定正确的对象作为目标
参数,或者将newGame函数移动到b。您的代码块似乎格式不正确,这使得读取起来非常困难。你可以重新格式化,然后我会很高兴和你一起仔细看看。好的,我已经完成了,请看一看,谢谢