Cocos2d iphone 选择级别窗体级别选择屏幕(Cocos2d&x2B;box2d)时出现问题
在级别选择屏幕中显示菜单项,并根据所选项目级别启动。。。下面是代码..其中selectedLevel是menuItem的索引Cocos2d iphone 选择级别窗体级别选择屏幕(Cocos2d&x2B;box2d)时出现问题,cocos2d-iphone,Cocos2d Iphone,在级别选择屏幕中显示菜单项,并根据所选项目级别启动。。。下面是代码..其中selectedLevel是menuItem的索引 if(selectedLevel==0) { activeScene = [level2_1Scene node]; [[CCDirector sharedDirector] pushScene:activeScene]; } else if(selectedLevel==1) { activeScene = [level2_2Scene n
if(selectedLevel==0)
{
activeScene = [level2_1Scene node];
[[CCDirector sharedDirector] pushScene:activeScene];
}
else if(selectedLevel==1)
{
activeScene = [level2_2Scene node];
[[CCDirector sharedDirector] pushScene:activeScene];
}
else if(selectedLevel==2)
{
activeScene = [level2_3Scene node];
[[CCDirector sharedDirector] pushScene:activeScene];
。。。所有级别都是如此
我如何使用像这样的级别场景名称的简单格式来实现这一点,但它不起作用
activeScene = [[NSString stringWithFormat:@"level2_%d",selectedLevel+1] node];
[[CCDirector sharedDirector] pushScene:activeScene];
这段来自我的一家工厂的代码在改编后可能会达到你的目的:
Skill *skkk = (Skill *) NSClassFromString(className);
if (skkk) {
return (Skill *) [[skkk class] skillWithSpec:ss];
} else {
MPLOGERROR(@"*****************************************************************");
MPLOGERROR(@" no class with name %@", className);
MPLOGERROR(@"*****************************************************************");
return nil;
}
这对我来说很有效
NSString *level=[NSString stringWithFormat:@"level2_%dScene",selectedLevel+1];
Class sceneClass = NSClassFromString(level);
activeScene = (bunnyScene*)[sceneClass node] ;
[[CCDirector sharedDirector] replaceScene:activeScene];
我想这可能是你想要的:
switch(selectedLevel)
{
case 0:
activeScene = [level2_1Scene node];
break;
case 1:
activeScene = [level2_2Scene node];
break;
// Etc....
}
if(activeScene) {
[[CCDirector sharedDirector] replaceScene:activeScene];
}