我有以下代码:
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];
}
问题是在循环过程中计时器没有在屏幕上更新,然后突然(在我认为循环结束后)填充到接近满。我不明白为什么会这样。我认为当你改变百分比时,图像会更新。
任何人都可以帮助我理解我应该理解的内容吗?
感谢。
答案 0 :(得分:0)
您的图像(在本例中为进度计时器),在draw()和visit()方法中更新屏幕。它们被称为每个滴答。在这里,您可以在一个刻度中更改它的值。因此,在上一次绘制期间,计时器值为0%,在下一个绘图中,它的值将为100
你在单线程中做到了。所以在这种情况下你的计时器不会更新。要创建可更新的计时器,您可以尝试将长工作代码移动到单独的线程。然后你就可以更新计时器了。