[D_010] Schedule DATA_OLD/Cocos2d-x 기능성 게임 개발과정2014. 11. 24. 15:31
P.243
Schedule (*중요)
cocos의 타이머와 같은 개념. Layer가 가지고 있는 method.
CC_CALLBACK_n을 쓰지 않고, schedule_selector를 사용함.
void callback(float delta);
여기서 delta는 해당 함수가 호출되는 타이머들 간의 호출 시간이다.
cocos의 메인타이머 - appDelegate.cpp
schedule은 메인 타이머에 종속적이기 때문에, 메인타이머의 interval보다 짧은 schedule은 존재할 수 없다.
싱글 게임에서는 크게 상관없지만, 온라인 게임에서는 이 delta를 이용해서 계산(이동거리 등)하는 용도 등에 중요하게 작용한다.
this->schedule(schedule_selector(HelloWorld::callback), 1.0f, 5, 3.0f);
//총 6번 호출(3.0f 기다리는거 1회, 1.0f 5회)
//( 호출 함수, 호출 간격, 호출 횟수, 딜레이 타임(시작전까지) )
//간격 없을 시 main timer과 동일, 횟수 없을 시 무한반복, 딜레이 없을시 바로 시작
//schedule_selector을 통해 불릴 함수는 무조건 float delta를 받아야한다.
this->scheduleOnce(schedule_selector(HelloWorld::callback), 3.0f);
//3초 대기 후, 한번만 호출
this->scheduleUpdate();
//특별한 인자 없이 update()라는 메소드를 호출하는 함수. 항상 들어간다고 보면 됨.
//여기에서 동기화 등을 해주는 것 같다.
스케줄 해제
this->unscheduleUpdate();
this->unscheduleAllSelectors();
this->unschedule(schedule_selector(HelloWorld::callback));
'DATA_OLD > Cocos2d-x 기능성 게임 개발과정' 카테고리의 다른 글
[D_011] 애니메이션/스크롤/커스텀 파티클 예제 (0) | 2014.11.25 |
---|---|
[D_011] 배경 스크롤 - Layer (0) | 2014.11.25 |
[D_010] 애니메이션 - Sprite packing, Animation, stopAction (0) | 2014.11.24 |
[D_009] 카드 게임 (0) | 2014.11.21 |
[D_008] Layer - LogoLayer 예제 (0) | 2014.11.20 |