Нашел этот пост в попытке задать тот же вопрос. Я попытался выполнить незапланированное обновление (также в рамках моего метода init), но затем понял, что переместил [self unscheduleUpdate]; к действительному методу обновления (который работает непрерывно, в отличие от метода init) в зависимости от условия, с которым он работал!
Итак, для тех, кто ищет копировальную пасту, вот пример индикатора выполнения, который я реализую с http://www.ccsprite.com/cocos2d/using-ccprogresstimer-cocos2d-example.html#HCB_comment_box
-(id) init
{
//initialize progress bar, make sure to add a file named green_health_bar.png to your
//resource folder
timer = [CCProgressTimer progressWithFile:@"green_health_bar.png"];
//set the progress bar type to horizontal from left to right
timer.type = kCCProgressTimerTypeHorizontalBarRL;
//initialize the progress bar to zero
timer.percentage = 0;
//add the CCProgressTimer to our layer and set its position
[self addChild:timer z:1 tag:20];
[timer setPosition:ccp(100, 280)];
[self scheduleUpdate];
}
и в вашем методе обновления:
-(void)update:(ccTime)dt
{
//get progress bar
CCNode* node = [self getChildByTag:20];
timer.percentage += dt * 10;
if (timer.percentage >= 100)
{
[self gameOver]; //used to stop parallax and show gameover menu
[self unscheduleUpdate];
}
}
Обычно я не разрешаю отвечать на электронные письма на форуме, но не стесняйтесь задавать вопросы через @ russ152!