cocos2d没有调用iphone onenter方法

时间:2010-02-18 14:55:58

标签: iphone cocos2d-iphone

我正在使用v99.0

当我的精灵添加到图层并显示图层的场景时,

未调用onEnter。精灵正确显示,但未调用onenter。

有趣的是,我与其他精灵完全一样,他们的onenter方法被称为罚款。

这是一个错误吗?

在app delegate:

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

在TilesView的init方法(它是CClayer的子类)中:

CCSpriteTouch * backArrow = [CCSprite spriteWithFile:@“back arrow.png”]; [self addChild:backArrow];

注意:在同一个init方法中,我创建了其他sprite,这会导致调用它们的onEnter方法:

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

两个精灵类的代码是相同的。

2 个答案:

答案 0 :(得分:2)

我发现了它......抱歉,这是一个愚蠢的错误。我已经将CCSprite子类化用于触摸,但是当我创建类的实例时,我使用CCSprite而不是我的自定义类:

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

所以 CCSprite 的onenter方法被调用,而不是 CCSpriteTouch

答案 1 :(得分:0)

在你的TilesView课程中你是否有一个超级onEnter的电话?即....

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

    [super onEnter];
}

我最近忘了用一些工作做这件事,并且与科科斯发生了混乱。您是否尝试通过某些Cocos代码来查看逻辑未能达到TilesView::onEnter调用的位置?

如果您粘贴TilesView类的声明,那么也可以帮助澄清事情。