본문 바로가기

Cocos2d-x v3.17/기본기능

[Cocos2d-x 기본기능]Scene 전환

반응형

씬 전환 

 

어떤 게임을 시작하고 스테이지를 변경하거나 게임을 종료시킬때 게이머에게 다른 장면을 보여주기위해선 다른 씬으로 전환하는게 필요하다.

Cocos2d-x는 이러한 방법을 위해 씬전환을 제공한다. 


씬 전환하는 방법 

씬전환 하는 방법은 여러방식이 있다.한번 봐보자. 


C++ 

auto myScene = Scene::create(); 

runWithScene()은 게임을 시작할때 첫번째 씬을 로드할때 사용된다.첫번째 씬만 로드하는것이다. 


C++ 

Director::getInstance()->runWithScene(myScene); 


replaceScene() 는 원래 있던씬에서 다른 씬으로 로드할때 사용된다.그리고 전환되기전의 원래의 씬은 릴리즈된다.이것은 씬전환할때 가장 자주 사용된다. 


C++ 

Director::getInstance()->replaceScene(myScene); 


pushScene() 은 원래 실행중이던 씬을 일시정지시켜서 씬 스택에 두고 새로운 씬을 로드한다.정상적인 씬이 실행되던중에만 이방법을 쓸수있다. 


C++ 

Director::getInstance()->pushScene(myScene); 


popScene() 현재의 씬을 릴리즈하고 씬 스택 제일 위에있는 씬이 다시 실행된다.그리고 해당씬의 일시정지를 풀고 정상실행시킨다.만약 씬 스택이 비어있다면 바로 종료된다. 


C++ 

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

 

씬전환의 효과를 설정하기 

씬전환 중 에서 다음과 같은 효과를 넣어줄수 있다. 

C++ 

auto myScene = Scene::create(); 

// Transition Fade

Director::getInstance()->replaceScene(TransitionFade::create(0.5, myScene, Color3B(0,255,255))); 

// FlipX

Director::getInstance()->replaceScene(TransitionFlipX::create(2, myScene)); 

// Transition Slide In

Director::getInstance()->replaceScene(TransitionSlideInT::create(1, myScene) ); 

   

출처: <http://cocos2d-x.org/docs/cocos2d-x/zh/scenes/transitioning.html

 


 


반응형