2010-08-05 59 views
0

因此,這是一筆交易,我一直在開發基於開源tweeJump的遊戲,作爲較大應用程序的一小部分。iPhone - 卸載在視圖控制器內運行的cocos2d遊戲

我已經成功地獲得了遊戲加載(從一個tableView),並能夠玩它,但我不太清楚如何停止運行cocos2d並返回到啓動遊戲的表視圖。我試過在cocos2d裏面實現一個按鈕來停止CCDirector,但是基本上只是凍結了我的應用程序 - 我不太確定如何彈出視圖控制器。我對cocos2d不是很熟悉,所以我會很感激任何幫助。謝謝。

下面是一些相關的代碼:

的的appDelegate(不運行遊戲,但樹立CCDirector供以後使用):

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

// Add the tab bar controller's current view as a subview of the window 
[window addSubview:tabBarController.view]; 

[application setStatusBarStyle:UIStatusBarStyleBlackTranslucent animated:YES]; 

[[CCDirector sharedDirector] setPixelFormat:kRGBA8]; 
[[CCDirector sharedDirector] setAnimationInterval:1.0/kFPS]; 

[CCTexture2D setDefaultAlphaPixelFormat:kTexture2DPixelFormat_RGBA8888]; 

[window makeKeyAndVisible]; 

return YES; 
} 

下面是視圖控制器相關的實施(這是我從一個tableViewController加載),這是運行遊戲,一切都在的loadView:

(void)loadView{ 
if (!load) { 
window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
load = YES; 
[[CCDirector sharedDirector] attachInWindow:window]; 
[window makeKeyAndVisible]; 
CCScene *scene = [[CCScene node] addChild:[Game node] z:0]; 
[[CCDirector sharedDirector] runWithScene: scene]; 
} 
} 

回答

-1

你不能只是做一個單獨的您的TableView一部分cocos2d場景,然後只是切換場景?

這些示例方法我在我的應用程序委託該切換場景:

- (void)loadGameOverScene { 
    [_gameOverScene.layer.label setString:@"You Lose :["]; 
    [_gameOverScene.layer reset]; 
    [[CCDirector sharedDirector] replaceScene:_gameOverScene]; 
} 

- (void)loadWinScene { 
    [_gameOverScene.layer.label setString:@"You Win!"]; 
    [_gameOverScene.layer reset]; 
    [[CCDirector sharedDirector] replaceScene:_gameOverScene]; 
} 

- (void)loadNewLevelScene { 
    [_newLevelScene.layer reset]; 
    [[CCDirector sharedDirector] replaceScene:_newLevelScene]; 
} 

- (void)nextLevel { 
    [_mainScene.layer reset]; 
    [[CCDirector sharedDirector] replaceScene:_mainScene]; 
} 

- (void)restartGame { 
    _curLevelIndex = 0; 
    [self nextLevel]; 
} 

- (void)levelComplete {  

    _curLevelIndex++; 
    if (_curLevelIndex >= [_levels count]) { 
     _curLevelIndex = 0; 
     [self loadWinScene]; 
    } else { 
     [self loadNewLevelScene]; 
    } 

} 

此外,cocos2d的有一個菜單系統,以及:CCMenu和CCMenuItem。

下面是關於如何使用不同類型的菜單的教程:

http://www.raywenderlich.com/414/how-to-create-buttons-in-cocos2d-simple-radio-and-toggle

我喜歡雷的教程。希望這可以幫助!

-1

我用它來打開cocos2d中的GameCenter leaderboard。

GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] 

    init]; 
     if (leaderboardController != NULL) 
     { 
      leaderboardController.leaderboardDelegate = self; 
      AppController *app = (AppController*) [[UIApplication sharedApplication] delegate]; 

      [[app navController] presentModalViewController:leaderboardController animated:YES]; 

      [leaderboardController release]; 
     } 

只要調用你的viewController來代替leaderboardController就可以了。