12월, 2017의 게시물 표시

Cocos2d-x Scene 전환 방법

Cocos2d-x를 이용하여 앱 개발 시 Scene 전환 방법에 대해 정리한다. (v3.16 기준) Scene을 전환하는 방법은 네 가지가 있다. 1. Director::getInstace()->runWithScene(scene);   - 첫 실행 시 AppDelegate로부터 Scene을 시작할 때 쓰인다.   - 즉 오직 첫 번째 Scene에만 허용되는 방법이다. 2. Director::getInstace()->replaceScene(scene);   - 현재 Scene을 새로운 Scene으로 대체한다. 완전히 삭제되어 빠진다. 3. Director::getInstace()->pushScene(scene);   - 현재 실행 중인 Scene을 중지시키고 그 위에 새로운 Scene을 올린다.   - 반드시 실행 중인 Scene에서만 호출되어야 한다. 4. Director::getInstace()->popScene(scene);   - 현재 실행 중인 Scene을 중지시킨 뒤 지우고 이전에 실행됐던 Scene으로 되돌린다.   - 반드시 실행 중인 Scene에 대해서만 호출되어야 한다. Scene을 전환할 때 애니메이션을 적용할 수도 있고 안할 수도 있다. 안한다면 위의 1 ~ 4와 같은 호출 형태가 될 것이고, 한다면 Director::getInstance()->replaceScene(TransitionFade::create(time, MyScene::createScene())); 이러한 형태가 될 것이다. 이 때 time은 애니메이션 시간으로, 몇 초에 걸쳐 전환시킬 것인지 정할 수 있다. 실수(Float)로 설정할 수 있다. ex) 0.5 초 Scene을 전환할 때 적용 가능한 애니메이션은 아래와 같다. - TransitionRotoZoom: 회전하며 줌인되어 등장한다. - TransitionJumpZoom: 점프하며 줌인되어 ...