2010-02-18 52 views
0

我使用時,我的精靈被添加到層和顯示層的scenee v99.0的cocos2d iphone的OnEnter方法不會被調用

的OnEnter不會被調用。精靈顯示正確,但是沒有調用onenter。

有趣的是,我正在做與其他精靈完全一樣的,他們的onenter方法被稱爲罰款。

這是一個錯誤?

在應用程序委託:

[[CCDirector sharedDirector] runWithScene: [TilesView scene]]; 

在TilesView的(這是CClayer的子類)的init方法:

CCSpriteTouch * backArrow = [CCSprite spriteWithFile:@ 「後arrow.png」]; [self addChild:backArrow];

注意:在同一init方法我創建其他精靈這確實導致它們的OnEnter方法被稱爲:

TileSprite *tile = [TileSprite spriteWithFile:@"singleTile.png"]; 
[self addChild:tile]; 

代碼兩者精靈類是相同的。

回答

2

我發現了它......抱歉,這是一個愚蠢的錯誤。我已經子類使用CCSprite失色,但是當我創建類的實例,我CCSprite不是我的自定義類這樣做:

CCSpriteTouch *backArrow = [CCSprite spriteWithFile:@"back arrow.png"]; 

所以CCSprite的的OnEnter方法被調用,而不是CCSpriteTouch的。

+0

我犯了同樣的錯誤:D – 2011-04-25 07:14:12

0

在你的TilesView類中,你有沒有打電話給超類onEnter?即...

-(void)onEnter 
{ 
    ... your custom code ... 

    [super onEnter]; 
} 

我忘了最近做了一些工作,它與科科斯一起havok。您是否嘗試追蹤一些Cocos代碼以查看邏輯未能達到您要撥打電話的位置?

如果您粘貼TilesView類的聲明,可以幫助澄清事情。