[cocos2d-x 3.5]popScene에 Transition 주기

2015. 5. 19. 22:37cocos2d-x



336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.



 popScene에 Transition주기 ! 


 가끔씩 push & pop을 써야 할때 popscene에서 Transition효과가 안들어가서 겁나 짜증난적이 있는지..

 

 우선 CCDirector.h 파일 찾자.

 

 command + shift + f 눌러서 찾아도 되지만 폴더 위치는 


 [ cocos2d_libs.xcodeproj > base > CCDirector.h ] 이며


 가서 적당한곳에 붙여 넣자.


public : <- 요 밑에 다가 붙이자 걍

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

    Scene *previousScene(void); 

    void popScene(Scene *trans);

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ


붙이고 CCDirector.cpp 파일로가서


적당한 위치에 밑에 두 함수 붙여 넣자


ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

Scene* Director::previousScene(void) {

    ssize_t c = _scenesStack.size();

 

   if (c <= 1return NULL;

    return (Scene *) _scenesStack.at(c - 2);

}


void Director::popScene(Scene *trans) {

    CCAssert(_runningScene != NULL"running scene should not null");

    _scenesStack.popBack();

    ssize_t c = _scenesStack.size();

    if (c == 0) {

        end();

    }

    else {

        _sendCleanupToScene = true;

        _nextScene = trans;

    }

}

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ


그리고 사용할 땐

    Scene *prevScene = CCDirector::getInstance()->previousScene();

    TransitionScene* transition = TransitionFlipX::create(0.5, prevScene);

    Director::getInstance()->popScene(transition);


 요딴식으로 해보자. 잘되네.