스케쥴 실행하고 중지하기 3가지 방법
h++)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #ifndef test246_hpp #define test246_hpp #include "cocos2d.h" USING_NS_CC; class Test246 : public cocos2d::Layer { public: static cocos2d::Scene* createScene(); virtual bool init(); // implement the "static create()" method manually CREATE_FUNC(Test246); int scheduleIndex = 0; int updateIndex = 0; void scheduleCallback(float delta); //schedule 콜백함수 void update(float delta); //scheduleUpdate 콜백함수 void scheduleOnceCallback(float delta); //scheduleOnce 콜백함수 }; #endif /* test246_hpp */ | cs |
c++)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | #include "test246.hpp" USING_NS_CC; Scene* Test246::createScene() { auto scene = Scene::create(); auto layer = Test246::create(); scene->addChild(layer); return scene; } bool Test246::init() { if ( !Layer::init()) { return false; } //지정된 메인 프레임 시간간격으로 콜백함수 호출 this->schedule(schedule_selector(Test246::scheduleCallback)); //update 콜백함수 호출 this->scheduleUpdate(); //scheduleOnce : 대기시간만큼 대기한 후 한번만 호출 this->scheduleOnce(schedule_selector(Test246::scheduleOnceCallback), 5.0); return true; } //스케쥴 콜백함수 void Test246::scheduleCallback(float delta){ scheduleIndex++; CCLOG("shedule callback"); if(scheduleIndex > 5){ //unschedule : 선택한 스케쥴을 중지 //unscheduleAllSelectors : 모든 스케쥴을 중지 //unscheduleUpdate : update 스케쥴을 중지 this->unschedule(schedule_selector(Test246::scheduleCallback)); } } //업데이트 콜백함수 void Test246::update(float delta){ updateIndex++; CCLOG("shedule update callback"); if(updateIndex > 5){ this->unscheduleUpdate(); } } //스케쥴 원스 콜백함수 void Test246::scheduleOnceCallback(float delta){ CCLOG("shedule once callback"); } | cs |
결과
scheduleUpdate 와 schedule 콜백함수를 5번 실행 후 중지한다
5초 후 scheduleOnce 콜백함수 실행 후 중지한다
1 2 3 4 5 6 7 8 9 10 11 12 13 | shedule update callback shedule update callback shedule callback shedule update callback shedule callback shedule update callback shedule callback shedule update callback shedule callback shedule update callback shedule callback shedule callback shedule once callback | cs |
'IT > - 프로그래밍' 카테고리의 다른 글
Cocos The directory 'android-13' can't be found in ANDROID_SDK_ROOT/platforms, please use --ap to set needed API level (0) | 2017.03.12 |
---|---|
IOS Xcode 시뮬레이터에서 키보드가 안보일때 보이게 하기 (0) | 2017.03.11 |
Cocos 스케줄 구현하기 (0) | 2017.03.09 |
Cocos 애니메이션 구현하기 (0) | 2017.03.08 |
Cocos 멀티터치 이벤트 설정하기 (0) | 2017.03.07 |