ループに数分の 1 秒の遅延を追加する方法はありますか (たとえば、ループの場合)。つまり、各反復の後に短い遅延が必要です。
cocos2d を使用すると、セレクターを遅延してスケジュールできることを知っています。しかし、この場合にこれをどのように使用できるかはわかりません。
また、睡眠はコストがかかり、お勧めできないことも知っています。
助言がありますか?
ループに数分の 1 秒の遅延を追加する方法はありますか (たとえば、ループの場合)。つまり、各反復の後に短い遅延が必要です。
cocos2d を使用すると、セレクターを遅延してスケジュールできることを知っています。しかし、この場合にこれをどのように使用できるかはわかりません。
また、睡眠はコストがかかり、お勧めできないことも知っています。
助言がありますか?
cocos2d で NSTimers を使用しないでください。ゲームを一時停止する可能性が必要な場合は、問題が発生します。
繰り返しの間に一定の遅延でアクションをループさせたい場合は、必要な遅延を指定して scedule:interval: メソッドを自由に使用できます。
[self schedule:@selector(methodToScedule) interval:yourDelay]
または、ランダムな遅延を行う必要がある場合は、cocos2d アクションのシーケンスを使用できます。例えば
- (void) sceduleMethod
{
// do anything you want
ccTime randomDuration = // make your random duration
id delayAction = [CCDelayTime actionWithDuration: randomDuration];
id callbackAction = [CCCallFunc actionWithTarget:self selector:@selector(scheduleMethod)];
id sequence = [CCSequenece actionOne: delayAction actionTwo: callbackAction];
[self runAction: sequence];
}
この場合、メソッドを一度だけ呼び出す必要があります。次に、指定された遅延で自分自身を呼び出します。
C のスリープ機能を使用できます。
sleep(seconds);
UITimer
しかし、またはブロックベースのperformSelector:withObject:afterDelay:
メソッドを見ることもできます。
その他の NSObject ベースのメソッドについては、 https ://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSObject_Class/Reference/Reference.html#//apple_ref/occ/instm/ を参照してください。 NSObject/performSelector:withObject:afterDelay