私のプログラムには、計算と描画を 1 秒間に 60 回行うループがあります。移動アクションを 1 秒に 1 回だけ実行したいのですが、objective-c メソッドでそれを行うにはどうすればよいですか?
1721 次
3 に答える
3
使用できます
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)seconds target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)repeats
1 秒間:
NSTimer *yourTastTimer = scheduledTimerWithTimeInterval:1 target:yourTarget selector:@selector(yourMethod) userInfo:nil repeats:YES;
詳細については、 NSTimerのドキュメントを確認してください。
編集
この回答を確認することもできます。
于 2012-08-07T09:55:52.740 に答える
2
iPhone に Cocos2D を使用している場合は、NSTimer を使用してはなりません。
ドキュメントに従って、次のschedule:interval:
ような方法を使用する必要があります。
[self schedule: @selector(tick:) interval:1.0f];
- (void) tick: (ccTime) dt
{
//...
}
于 2012-08-07T12:18:58.560 に答える
0
あなたが CCSprite を使用している場合、それらはトリックを行う可能性のあるスケジュールメソッドを持っています。基本的に、メインループに対して何をしますか。メイン ループにティッカーを保持し、これがティッカー%60==0 であることを確認することもできます。次に、移動アクションを呼び出します。
私は NSTimer が cocos2d hereで推奨されていないことを読みました。
于 2012-08-07T10:04:10.697 に答える