2012-06-05 2 views
1

У меня есть следующий код:CCProgressTimer не обновляется, а потом вдруг подскакивает

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

Ваше изображение (в данном случае, вы прогресс таймер), обновления на экране в методах draw() и посещения(). Их называют каждый тик. Здесь вы меняете значение на один тик. Таким образом, во время предыдущего розыгрыша значение таймера составляло 0 процентов, а на следующем рисунке его значение составляло 100

вы делаете это в одной нити. поэтому ваш таймер не будет обновляться в этом случае. для создания обновляемого таймера вы можете попытаться переместить свой длинный рабочий код в отдельный поток. то вы сможете обновить таймер.

+0

Эта последовательность занимает несколько секунд. Не будет ли достаточного времени для обновления таймера? – user1437403

+0

обновил мой пост – Morion

+0

Могу ли я также назвать посещение моей петли? – user1437403

Смежные вопросы