티스토리 뷰

Game/Cocos2d-x

[분석] 3. ActionTest

유승구 2012. 4. 18. 16:32

오늘은 Action Test에 대한 분석을 시도합니다.

씬 전환이 끝나고 급 이쪽으로 넘어왔는데 CCMenu에 해당되는 부분은 소스 분석을 좀더 자세히 들어갈때 포스팅 하도록 하겠습니다.


이 포스팅은 Cocos2d-x의 예제를 분석한 내용을 다루고 있습니다.

언제든 이 포스팅이 중지 될 수 있다는 것을 알아주세요. :)


TestController는 CCMenu를 이용해 메뉴를 생성합니다. 

우리는 구중 Action Test 씬을 호출 했습니다. 씬 호출은 controller.cpp를 보시면 금방 눈치 채십니다.


ActionTest.h


데모를 보면 귀엽게 생긴 녀석들이 나옵니다. 이름이 다들 있었습니다.




grossini는 남자 겠군요.

tamara, kathia는 여자일 듯(?) 합니다.


수많은 이너 클래스들이 존재 합니다. 그중에서도 ActionsDemo라는 클래스를 항상 상속 받습니다.

이 ActionsDemo안에는 다양한 가상 함수와 저 grossini, tamara, kathia가 있습니다.


Enum 값은 아무래도 씬 전환에 사용되는 듯 합니다.

Layer로 전환이 되는 건가요? 아직은 잘 모르겠습니다.


ActionTest.cpp


헤더파일에서 선언한 변수들을 초기화 해주는 곳입니다.

ActionTest를 실행하면 onEnter를 타게 됩니다.


grossini에게 파일명을 입력해주고 CCSprite를 생성합니다.

그 뒤에 Scene에 추가해줍니다. (addChild)

포지션을 설정해주고 하단 메뉴를 생성해줍니다. 왼쪽, 오른쪽, 재시작. 그리고 이 메뉴에는 함수가 실행되도록 selector를 걸어줍니다. listener등록이라고 해도 되겠습니다.


메뉴까지 addchild가 됩니다.


* TestScene은 CCSCene을 상속받는데 CCScene은 다시 CCNode를 상속받습니다. 그래서 addchild가 가능합니다.


* autorelease라는 것에 대해 전부터 쓰려고 했는데 ThreadPool을 이용하여 처리가 끝나면 자연스럽게 메모리가 날아가도록 처리되어있습니다.


지금부터는 대충 설명이 진행되겠습니다. 자세한 내용은 레퍼런스를 참조하십시오.

헤더파일에서 각각 선언된 이너클래스들은 Scene에 replace 됩니다. 즉 해당 클래스가 실행됩니다. 각각 가상함수로 onEnter와 기타 추가 사항이 있는 걸로 보아 각각 동작이 상이 합니다. 이건 양이 많으니 직접 살펴보는게 좋을 것 같습니다.


하나만 살펴보기로 합니다.




centerSprites(3) 이건 그저 manual 클래스의 내용을 한번더 작성하는 것에 지나지 않습니다.

원래 가운정렬 한 것처럼 만들어 줍니다.


CCActionInterval의 종류가 다양한 것 같습니다. 레퍼런스의 참고가 필요합니다.


그 다음라인은 runAction을 통해 Action을 실행합니다.

간단하네요.


그럼 다음 튜토리얼 분석을 가지고 돌아오도록 하겠습니다.

감사합니다.







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

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