0

レベル選択画面にメニュー項目があり、選択した項目レベルに応じて開始されます...ここにコードがあります..selectedLevelはmenuItemのインデックスです。

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]; 
4

3 に答える 3

2

私の工場の1つからのこのスニペットは、おそらく適応後にあなたのトリックを行うことができます:

Skill *skkk = (Skill *) NSClassFromString(className);

if (skkk) {
    return (Skill *) [[skkk class] skillWithSpec:ss];
} else {
    MPLOGERROR(@"*****************************************************************");
    MPLOGERROR(@"             no class with name %@", className);
    MPLOGERROR(@"*****************************************************************");
    return nil;
}
于 2013-03-21T10:19:19.937 に答える
0

これはあなたが探しているものかもしれないと思います:

switch(selectedLevel)
{
    case 0:
    activeScene = [level2_1Scene node];
    break;

    case 1:
    activeScene = [level2_2Scene node];
    break;

    // Etc....
}

if(activeScene) {
    [[CCDirector sharedDirector] replaceScene:activeScene];
}
于 2013-03-30T21:23:36.887 に答える
0

これは私のために働いた、、、

    NSString *level=[NSString stringWithFormat:@"level2_%dScene",selectedLevel+1];   
    Class sceneClass = NSClassFromString(level);
    activeScene = (bunnyScene*)[sceneClass node] ;
    [[CCDirector sharedDirector] replaceScene:activeScene];
于 2013-03-21T10:38:50.057 に答える