Skip to content

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 돌아가면서 호출된다.

See also