не вызывается метод ввода iphone cocos2d - PullRequest
0 голосов
/ 18 февраля 2010

Я использую v99.0

onEnter не вызывается, когда мой спрайт добавляется в слой и отображается сцена слоя.спрайт отображается правильно, но onenter не вызывается.

забавно то, что я делаю то же самое с другими спрайтами, и их методы onenter называются отлично.

Этоошибка?

В приложении делегат:

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

В методе инициализации TilesView (который является подклассом CClayer):

CCSpriteTouch * backArrow = [CCSprite spriteWithFile: @ "backarrow.png "];[self addChild: backArrow];

Примечание. В том же методе init я создаю другие спрайты, в результате чего их методы onEnter вызывают:

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

код для обоих классов спрайтовидентичны.

Ответы [ 2 ]

2 голосов
/ 01 марта 2010

Я заметил это ... извините, это была глупая ошибка. У меня был подкласс CCSprite для использования с касаниями, но когда я создал экземпляр класса, я сделал это с помощью CCSprite, а не моего пользовательского класса:

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

поэтому CCSprite вызывается метод ввода, а не CCSpriteTouch .

0 голосов
/ 22 февраля 2010

В вашем TilesView классе вы звоните в суперкласс onEnter? то есть ....

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

    [super onEnter];
}

Я недавно забыл сделать это с какой-то работой, и это нанесло вред Кокосу. Вы пытались отследить какой-нибудь код Cocos, чтобы увидеть, где логика не достигает точки, где должен быть сделан ваш TilesView::onEnter звонок?

Если вы вставите в ваше объявление класс TilesView, это также поможет прояснить ситуацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...