1

私は次のコードを持っています:

CCProgressTimer *aTimer;


-(void) generateDungeon {

    srand (time(NULL));
    [self initDungeonArray];

    int numRooms = RNDM(10,100);
    for (int a=0; a< numRooms; a++) {
         [self makeRandomRoom];
         aTimer.percentage += 100/numRooms;
    }

[self connectTheRooms];
[self placeStairs];
}

問題は、ループ中にタイマーが画面上で更新されず、突然(ループが終了した後)、ほぼ満杯になることです。なぜこれが起こっているのか分かりません。パーセンテージを変えると画像が更新されると思いました。

誰かが私が理解すべきことを理解するのを手伝ってもらえますか?

ありがとう。

4

1 に答える 1

0

画像(この場合はタイマーを進行させます)は、draw()メソッドとvisit()メソッドで画面上で更新されます。それらはすべてのダニと呼ばれます。ここでは、1ティックで値を変更します。したがって、前の描画中のタイマー値は0%でしたが、次の描画ではその値は100になります。

あなたはシングルスレッドでそれを作ります。したがって、この場合、タイマーは更新されません。更新可能なタイマーを作成するには、長時間動作するコードを別のスレッドに移動してみてください。その後、タイマーを更新できるようになります。

于 2012-06-05T15:57:30.500 に答える