Cocos2d расписание только один раз - PullRequest
8 голосов
/ 27 мая 2011

Как я могу сделать расписание выбора cocos2d только один раз?Сейчас лучшее, что я могу сделать, это:

[self schedule:@selector(eventHappend:) interval:2];

и eventHappend:

- (void)eventHappend: (ccTime) dt
{
    [self unschedule:@selector(eventHappend:)];
    // Do stuff
}

, но это выглядит как обходной путь ... есть ли способ запланировать только один раз?

Ответы [ 4 ]

9 голосов
/ 28 мая 2011

Вы можете запустить последовательность действий на узле, CCDelay, а затем CCCallFunc, который вызывает ваш метод.

Вот так ...

[self runAction:[CCSequence actions:[CCDelayTime actionWithDuration:2], 
                                    [CCCallFunc actionWithTarget:self selector:@selector(eventHappened)],
                                    nil]];
3 голосов
/ 15 декабря 2012
- (void) scheduleOnce: (SEL)selector delay: (ccTime)delay 

Планирует селектор, который запускается только один раз, с задержкой 0 или больше

http://www.cocos2d -iphone.org / апи-исх / последний стабильный / interface_c_c_node.html # afe99d609f17c4c849e4543805ffeceab

0 голосов
/ 23 мая 2013

Большинство из них слишком сложны для того, что вам нужно (даже если они довольно простые)

Все, что вам нужно, это следующая строка кода:

[self performSelector:@selector(eventHappend:) withObject:nil afterDelay:2];

Это будет работатьваш метод eventHappend только один раз.

0 голосов
/ 23 мая 2013

Вы также можете использовать это:

[self unschedule:_cmd];

в вашей функции EventHappened - ваше расписание будет запущено один раз.

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