cocos2D를 구성하고 있는 주요 클래스와 기본 개념을 살펴보면 다음과 같다.
(원문 : http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:basic_concepts#scenes)
CCScene
- app 구현흐름에 비교적 독립적인 장면 구현 : (scene == screens == stages )
- app는 여러개를 갖을 수 있지만, 특정한 순간에는 단 하나의 scene만을 갖음.
- 하나이상의 CCLayer로 구성됨. ( 형태 및 행위를 구현해줌)
- Scene사이의 변환은 CCTransitionScene 클래스로 구현가능 ( ex. fade out/in, slide from a side, etc)
- CCNode의 SubClass이므로 Actions에 의해 변환될 수 있음.
[scene의 구성]
CCDirector
- Scene들의 앞뒤 순서를 관리
- shared Object( singleton)형태로 구현됨.
- OpenGL ES의 초기화 담당
- scene calls를 관리
- Scene들의 앞뒤 순서를 관리
- shared Object( singleton)형태로 구현됨.
- OpenGL ES의 초기화 담당
- scene calls를 관리
CLayer
- 그릴 수 잇는 영역의 크기를 갖고 있으며, 그리를 구현 방식을 정의함.
- 타 Layer와 반투명 형태로 겹치게 표현가능
- Event Handler를 구현하는 클래스 (Event는 특정 Layer가 해당이벤트를 받아 적용할 때까지 전파됨)
- cocos2D에서는 유용한 CCLayer를 미리 정의해 두었음 ( 메뉴 담당 : CCMenu, 컬러 : CCColorLayer, 멀티픽셀러 : CCMultiplexLayer, ... 물론 사용자정의의 CCLayer를 구현할 수 있음)
- CCNode의 SubClass이므로 Actions에 의해 변환될 수 있음.
- 그릴 수 잇는 영역의 크기를 갖고 있으며, 그리를 구현 방식을 정의함.
- 타 Layer와 반투명 형태로 겹치게 표현가능
- cocos2D에서는 유용한 CCLayer를 미리 정의해 두었음 ( 메뉴 담당 : CCMenu, 컬러 : CCColorLayer, 멀티픽셀러 : CCMultiplexLayer, ... 물론 사용자정의의 CCLayer를 구현할 수 있음)
- CCNode의 SubClass이므로 Actions에 의해 변환될 수 있음.
CCSprite
- 2D 이미지를 담당하고 있으며, 이동, 회전, 크기변환, 에니메이션 효과 등을 적용할 수 있음.
- 다른 CCSprite Object를 하위로 갖을 수 있으며, 부모가 변환시 자식들도 변환됨
- CCNode의 SubClass이므로 Actions에 의해 변환될 수 있음.
- 2D 이미지를 담당하고 있으며, 이동, 회전, 크기변환, 에니메이션 효과 등을 적용할 수 있음.
- 다른 CCSprite Object를 하위로 갖을 수 있으며, 부모가 변환시 자식들도 변환됨
- CCNode의 SubClass이므로 Actions에 의해 변환될 수 있음.
CCNode
- Object C에서 NSObject와 마찬가지로 cocos2D의 대부분의 클래스는 CCNode에서 상속받음
- 다른 Node를 추가/삭제하는 컨테이너 포함
- 특정 시점을 기준으로 Callback 함수 호출을 통한 스캐줄 관리
- Action을 실행할 수 있음.
- Rendering 방식을 정의할 수 있음.
- Object C에서 NSObject와 마찬가지로 cocos2D의 대부분의 클래스는 CCNode에서 상속받음
- 다른 Node를 추가/삭제하는 컨테이너 포함
- 특정 시점을 기준으로 Callback 함수 호출을 통한 스캐줄 관리
- Action을 실행할 수 있음.
- Rendering 방식을 정의할 수 있음.
클래스 세부정보 : http://www.cocos2d-iphone.org/api-ref/0.99.4/annotated.html
'아이폰개발 > cocos2d' 카테고리의 다른 글
[cocos2d] Scene 추가 및 화면 전환효과 구현 (0) | 2010.07.24 |
---|---|
[cocos2D]초기 메뉴 구현하기 (0) | 2010.07.19 |
[cocos2d] Hello World 분석 (1) | 2010.07.18 |
[cocos2d] 준비 및 설치하기 (1) | 2010.07.15 |