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() 方法中更新屏幕。它们被称为每个滴答声。在这里,您可以一键更改它的值。因此,在上一次绘图期间,计时器的值为 0%,而在下一次绘图中,它的值将是 100

你在单线程中完成它。所以在这种情况下你的计时器不会更新。要创建可更新的计时器,您可以尝试将长时间工作的代码移动到单独的线程。然后您将能够更新计时器。

于 2012-06-05T15:57:30.500 回答