2013-01-23 56 views
0

這是我嘗試的第一個cocos2d應用程序,我從書中學習Cocos2d的例子,但它似乎指的是較早版本的cocos。添加一個場景導演cocos2d iOS

我創建了一個場景,並在其init方法中添加了2個圖層。

現在教程說,在我的delegate.m我要加入這一行(準確地說改變以前一個strted的HelloWorldScene):

[director_ runWithScene:[GameScene node]]; 

但我得到一個錯誤。

奇怪的是,它並沒有使用該代碼在所有,但一個:

[director_ pushScene: [IntroLayer Scene]]; 

但是,如果我用這個,我也得到一個錯誤:

[director_ pushScene: [GameScene node]]; 

我GameScene是在這裏:

#import "GameScene.h" 

@implementation GameScene 
-(id) init{ 
    self=[super init]; 
    if (self!=nil){ 
     BackgroundLayer *backgroundLayer=[BackgroundLayer node]; 
     [self addChild:backgroundLayer z:0]; 

     GameplayLayer *gameplayLayer=[GameplayLayer node]; 
     [self addChild:gameplayLayer z:5]; 
    } 
} 

@end 

和錯誤,我得到:

EXC_BAD_ACCESS in both cases. 

如何從我的appdelegate啓動這個場景?

+0

你使用的是哪個版本的cocos2d和xcode? – MrWaqasAhmed

+0

在Xcode中添加一個異常斷點。 http://stackoverflow.com/questions/4961770/run-stop-on-objective-c-exception-in-xcode-4然後你可以告訴我們更多關於錯誤的信息。 EXC_BAD_ACCESS是一個通用錯誤。 – LearnCocos2D

回答

0

感謝您的幫助!

我沒有使用:

[director_ pushScene: [GameScene node]]; 

,但實際的問題是,在我的GameScene init方法我都忘記了返回的自我。

1

你要發送的導演pushScene方法參數Scene,作爲

[director_ pushScene: [GameScene scene]]; 
+0

是的,但這是否意味着我的GameScene必須實現場景方法? – ghostrider

+0

是的,你必須。 – MrWaqasAhmed

+0

我認爲''[GameScene節點]'會正常工作,假設GameScene繼承自CCScene。 – Sylvan