Cocos2dx:Schedule
스케줄 등록 방법
주기적으로 실행되게 하기 위해 각 객체의 schedule()함수를 이용한다.
schedule(SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay);
// selector: 스케쥴링시 호출할 함수.
// interval: 호출할 함수의 시간간격.
// repeat: 호출횟수.
// delay: 최초등록후 몇초 후 부터 스케쥴링 할 것인가?
unschedule(SEL_SCHEDULE selector) 나 unscheduleAllSelectors() 로 스케쥴 등록을 제거할 수 있다.
Example
void MyScene::scheduleCountOne(float dt)
{
this->unschedule(schedule_selector( MyScene ::scheduleCountThree));
this->schedule(schedule_selector( MyScene ::scheduleCountTwo), 0.0f, 0, 1.0f);
CCLog("One");
}
void MyScene ::scheduleCountTwo(float dt)
{
this->unschedule(schedule_selector( MyScene ::scheduleCountOne));
this->schedule(schedule_selector( MyScene ::scheduleCountThree), 0.0f, 0, 1.0f);
CCLog("Two");
}
void MyScene ::scheduleCountThree(float dt)
{
this->unschedule(schedule_selector( MyScene ::scheduleCountTwo));
this->schedule(schedule_selector( MyScene ::scheduleCountOne), 0.0f, 0, 1.0f);
CCLog("Three");
}
1초마다 scheduleCountOne->scheduleCountTwo->scheduleCountThree->scheduleCountOne 돌아가면서 호출된다.