CCProgressTimer没有更新,然后突然跳了起来

时间:2012-06-05 13:05:27

标签: objective-c xcode cocos2d-iphone

我有以下代码:

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];
}

问题是在循环过程中计时器没有在屏幕上更新,然后突然(在我认为循环结束后)填充到接近满。我不明白为什么会这样。我认为当你改变百分比时,图像会更新。

任何人都可以帮助我理解我应该理解的内容吗?

感谢。

1 个答案:

答案 0 :(得分:0)

您的图像(在本例中为进度计时器),在draw()和visit()方法中更新屏幕。它们被称为每个滴答。在这里,您可以在一个刻度中更改它的值。因此,在上一次绘制期间,计时器值为0%,在下一个绘图中,它的值将为100

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