2010-12-29 3 views
2

に別のスレッド上で起動されます私は、フレームごとに繰り返しコールバックを予定しています実行(Do)、ユーザイベントはCocos2d/Objective Cの

[self schedule:@selector(nextFrame:)]; 

これは私のメインのゲームループを形成しています。

ユーザーが画面にタッチすると、イベントが生成されます。

- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event { 
    ... 
    // Respond to event 
    ... 
} 
  1. 新しいスレッド上で瞬時に生成されたこのイベントですか?

  2. ...現在のフレームが終了するとキューに入れられますか?

  3. ...または別のものはありますか?

これが2の場合は、マルチスレッドの問題がないことを意味しますか?

答えて

3

1)すべてのcocos2d-iphoneコードは、1つのメインゲームループ内で処理されます.ccTouchBeganは、iPhone SDKタッチイベントが発生したときにDirectorによって呼び出されます。

2)フレームが処理される前にすべての "イベント"が処理されます。レンダリングは最後に行われたことです。

3)...

はCocos2Dには、マルチスレッドの問題はありません。

+0

修正 - 複数のスレッドを発生させるトリガとなるコードによってマルチスレッドの問題が発生する可能性がありますが、標準のcocos2d-iphoneメソッド(schedule、scheduleUpdate、ccTouchBeganなど)を使用してゲームを正しく書くと、心配しないでください。 –

+0

ありがとうございました – Robert

関連する問題