티스토리 뷰

Game/Cocos2d-x

[분석] 2. SCene 전환

유승구 2012. 4. 17. 15:31

오늘은 Scene 처리에 관한 부분을 분석해볼 심산입니다.


AppDelegate.cpp

initInstance() 에서 WIN32에 맞게 빌드 되는 부분 부터 시작합니다.


CCEGLView * pMainWnd = new CCEGLView();

CCEGLVIew에 대해 분석을 해보겠습니다.


내부적으로 CCApplication과 동일하게 platform 별 헤더를 포함시킵니다.



CCEGLView()에서 기본적인 변수를 초기화 시켜줍니다.

이후 Create() 함수가 호출되며 윈도우 컨테이너를 생성시킵니다. 이때 사이즈와 타이틀을 이용합니다.

모든 것이 다 끝나면 CCEGL을 생성하게 되며 여기서부터는 OpenGL을 이용하는지 뭔지는 분석을 좀더 해봐야겠습니다. 저는 3D에 관한 사항을 잘 모르므로 여기선 그냥 패스 하도록 하겠습니다.


어제 분석한 내용과 동일하므로 쭉쭉 넘어가 제가 궁금한 쪽으로 넘어가겠습니다.




applicationDidFinishLaunching() 내부에서 Scene을 할당하는 부분입니다.

이제부터는 저도 잘 모르니 확확 넘어가겠습니다.


CCScene::node를 실행시키면 node를 이용하여 director와 함께 pScene을 생성해줍니다.

TestController()라는 것은 내부적으로 controller.cpp안에 포함된 이너 클래스로 저희가 처음 보게될 목차를 담당하는 Scene입니다. 이걸 Layer로 할당해줍니다. autorelease()는 그냥 제목 그대롭니다.


만든 Layer는 Scene에 추가되며 director에게 scene을 실행시키도록 명령합니다.

이렇게 하면 Scene이 실행되는데 전환에 해당되는 부분은 controller.cpp 에 각각 Test Class를 새로 생성시켜 pScene에 할당하고 이를 실행시켜주는 것으로 Scene 전환이 이루어집니다.


물론 전환된 뒤에 이전 Scene은 release시켜주고 있습니다.



'Game > Cocos2d-x' 카테고리의 다른 글

[분석] 3. ActionTest  (0) 2012.04.18
[분석] 2. SCene 전환  (0) 2012.04.17
[분석] 1. 시작하기  (2) 2012.04.16
댓글
댓글쓰기 폼