Недостаточно представителя upvote Tom, но он абсолютно прав. В контексте этого вопроса NSTimer является Неверное решение. Платформа Cocos2d обеспечивает планировщик, который интегрируется с другими игровыми функциями как Пауза/Резюме (и наиболее вероятное использование NSTimer под капотом).
Пример из вышеупомянутой ссылки:
-(id) init
{
if( ! [super init] )
return nil;
// schedule timer
[self schedule: @selector(tick:)];
[self schedule: @selector(tick2:) interval:0.5];
return self;
}
-(void) tick: (CCTime) dt
{
// bla bla bla
}
-(void) tick2: (CCTime) dt
{
// bla bla bla
}
-(id) init
{
if( ! [super init] )
return nil;
// schedule timer
[self schedule: @selector(tick:)];
[self schedule: @selector(tick2:) interval:0.5];
return self;
}
-(void) tick: (ccTime) dt
{
//some function here
}
-(void) tick2: (ccTime) dt
{
//some function here
}
Взгляд на NSTimer, это может, скорее всего, обеспечить любую необходимую функциональность таймера.
http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:best_practices
- Попытка НЕ для использования Cocoa’s NSTimer. Вместо этого используйте cocos2d’s собственный планировщик.
- при использовании cocos2d планировщика Вы будете иметь:
- автоматическая пауза/резюме.
- , когда Слой (Сцена, Sprite, CocosNode) вводит этап, таймер будет автоматически активирован, и когда это уйдет со сцены, это будет автоматически деактивировано.
- Вашу цель/селектор назовут со временем дельты...