2011-09-24 19 views
0

我最近遵循了Ray Wenderlich的Cocos2D教程,將Cocos2D放入UIKit應用程序中。我目前只在我的一個UIView中使用Cocos2D。在教程中,他使用了CCScene,它是項目中特定的.h和.m類。在場景中是一些代碼,我不知道它們的重要性。我必須說我是Cocos2D的新手,我想知道CCScene的重點是什麼?我需要在我的情況下使用它嗎?如果是這樣,怎麼樣?Cocos2D CCScenes的重要性?

謝謝!

編輯1:這是正確的嗎?我還添加了一個簡單的遊戲循環,所以我應該按照我在下面的方式進行操作,還是應該使用CADisplayLink?

//Cocos2D methods 
-(id) init { 
    if((self=[super init])) 
    { 
     CCScene *scene = [CCScene node]; 
     CCLayer *layer = [CCLayer node]; 
     [scene addChild:layer]; 
     [[CCDirector sharedDirector] runWithScene:scene]; 
     [self performSelector:@selector(cocosgameLoop:) withObject:nil afterDelay:1/60.0f]; 
    } 
    return self; 
} 
- (void)cocosgameLoop:(ccTime)dT { 
    //Check for collisions here and add gravity, etc.... 
} 
- (void)viewDidUnload { 
    [super viewDidUnload]; 
    [[CCDirector sharedDirector] end]; 
} 
// 

回答

4

CCScene是場景圖中的根節點。沒有父母的節點。 CCDirector只與CCScenes一起運行。閱讀以瞭解更多信息:http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:lesson_3._menus_and_scenes

回答你的意見

其實你不必瞭解CCScene是如何實現的。但是如果你想用cocos2d渲染一些東西,你必須創建一個CCScene並把它傳遞給CCDirector。常見的方法是:

CCScene *scene = [CCScene node]; 
CCLayer *layer = [CCLayer node]; 
[scene addChild:layer]; 
[[CCDirector sharedDirector] runWithScene:scene]; 

通常你必須繼承一個CCLayer並重新實現init方法增加您的員工(精靈爲例)。看看編程指南更詳細的答案: http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:index

+0

嗯有趣。那麼這是否意味着我需要一個CCScene呢?如果是這樣,那麼會有類似的代碼? –

+0

@MyApps:看我的編輯 – Andrew

+0

好吧,這樣代碼會進入一個init方法裏面?而且在這個初始化方法中,會去代碼讓我的角色和其他遊戲精靈進入位置? 你是什麼意思的繼承CCLayer?對不起所有的問題,只是我是新來的! 謝謝! –