我是cocos2d的新手并且正在发展,所以这可能是一个非常愚蠢的错误。 我到处搜索并比较了例子,我看不出问题。 我只有一个播放按钮,有一个简单的菜单。我点击时试图去另一个场景。错误是
使用未声明的标识符'gameScene'
但据我所知,它被声明......
这是我的代码。
CCMenuItemImage *play = [CCMenuItemImage
itemFromNormalImage:@"PlayButton.png"
selectedImage:@"PlayButtonPressed.png"
target:self
selector:@selector(gameScene)];
CCMenu *selectMenu = [CCMenu menuWithItems:play, nil];
//[selectMenu alignItemsVertically];
[self addChild:selectMenu];
-(void)gameScene:(id)sender
{
[[CCDirector shareDirector] replaceScene:GameScene node];
}
感谢您的帮助
编辑: 我现在没有错误,我错过了GameScene节点周围的[]。 但它一直在崩溃。继承我的新代码。
CCMenuItemImage *play = [CCMenuItemImage
itemFromNormalImage:@"PlayButton.png"
selectedImage:@"PlayButtonPressed.png"
target:self
selector:@selector(playGame)];
CCMenu *selectMenu = [CCMenu menuWithItems:play, nil];
//[selectMenu alignItemsVertically];
selectMenu.position = ccp(160, 300);
[self addChild:selectMenu];
}
return self;
}
-(void)playGame:(id)sender{
[[CCDirector sharedDirector]replaceScene:[GameScene node]];
}
它似乎无法进入CCMenu?
答案 0 :(得分:0)
您的替换场景参数不正确。您必须定义它将切换到的实际场景,而不仅仅是空节点。
答案 1 :(得分:0)
我解决了这个问题。这似乎是选择器的一个问题。 我刚改变了 从:
CCMenuItemImage *play = [CCMenuItemImage
itemFromNormalImage:@"PlayButton.png"
selectedImage:@"PlayButtonPressed.png"
target:self
selector:@selector(playGame)];
为:
CCMenuItemImage *play = [CCMenuItemImage
itemFromNormalImage:@"PlayButton.png"
selectedImage:@"PlayButtonPressed.png"
target:self
selector:@selector(playGame:)];
答案 2 :(得分:0)
我一直想念这些。在你的计时器中也要注意这一点,我花了几个小时来追踪[自我安排:@selector(gameLogic)]导致的错误;任何时候你有一个选择器,无论是在计时器或菜单中还是在其他地方,你都需要将它放入传递数据。
此外,如果你想在没有按钮按下的情况下进行虚假的菜单调用,可能强迫它在定时器或其他东西中调用,这是一个我发现有用的hacky解决方案:
id fakeButton;
[self playGame:fakeButton];