Feel free to fix/add documentation to the wiki

cocos2d 기본 컨셉

cocos2d 어플리케이션을 개발에 필요한 기본 컨셉을 소개합니다:

장면

Scene 오브젝트로 구현된 장면은 어플리케이션 흐름의 독립적인 한 부분입니다. 혹자는 이것을 “스크린”이나 “스테이지”라고 말합니다. 여러분의 어플리케이션은 실제 동작하는 장면은 하나이지만, 여러 장면으로 구성될 수 있습니다.

예를 들면, 여러분은 다음과 같은 장면의 흐름으로 게임을 만들 수 있습니다.: Intro, Menu, Level 1, Cutscene 1, Level 2, Winning cutscene, losing cutscene, High scores screen.

서로 다른 어플리케이션과 같이 각각의 장면들을 달리 정의할 수 있습니다. 연결되는 장면을 위한 로직을 포함하는 접착제 역할을 하는 것이 있습니다.(소개 다음에 게임을 끝내거나 특정 조건일 때 메뉴로 가는 것, 레벨 1에서 게임을 끝내거나 게임에서 지면 컷장면1로 간다든지 하는 것 등등)

cocos2d의 Scene은 하나 또는 여러 레이어들로 구성되고(Layer 오브젝트 구현) 레이어 층의 모음이 됩니다. 레이어는 각 장면에 표현과 행동을 담당하게 됩니다. 일반적인 케이스는 여러분에게 필요한 레이어를 포함하는 장면의 인스턴스를 만드는 것입니다.

또한 변형이라는 Scene 클래스의 페밀리 클래스가 있습니다. 이는 페이드인/아웃, 슬라이드 이동 등과 같은 장면의 변형을 만드는 것입니다.

장면은 CocosNode의 서브클래스이므로 이는 액션을 사용하여 필요한 만큼 변형될 수 있습니다. 액션에 관한 자세한 내용은 Actions 페이지를 참조하시기 바랍니다.

디렉터

디렉터는 여러 장면들을 뒤로 가게 하거나 앞으로 가게하는 관리를 맡는 컴포넌트입니다.

Director는 공유(싱글턴) 오브젝트입니다. 이 클래스는 현재 동작하는 장면을 알려주고 “scene calls”(다른 장면이 나타나는 동안 장면을 멈추고, 원래 장면으로 돌아가는 것과 같은)와 같은 것들을 실행하는 여러 장면을 핸들링합니다. Director는 실제로 레이어를 선택한 후 장면을 바꾸고 그 때의 장면을 종료하는 것을 제어할 겁니다.

Director는 또한 메인 윈도우를 초기화 하는 것을 담당합니다.

레이어

레이어는 그려지는 전체 영역을 포함하며 그려지는 객체 자신입니다. A Layer has a size of the whole drawable area, and knows how to draw itself. 레이어는 전체 또는 일부분의 반투명 효과를 지원하며 다른 레이어 위에 겹쳐서 깔린 레이어를 가리는 것이 가능합니다. 레이어는 행동과 표현을 정의하게 되며 여러분이 프로그래밍하는 동안 Layer의 서브클래스를 필요한 대로 코딩하는데 대부분의 시간을 사용하게 될 겁니다.

이벤트 핸들러는 레이어에 정의됩니다. 이벤트는 어떤 레이어가 해당 이벤트를 캐치하여 동작하는 동안, 앞에서 뒤로 레이어로 전달될 것입니다. FIXME

커스텀 Layer 클래스를 정의하여야 할 만큼의 어려운 어플리케이션의 요구가 있다고 하더라도, cocos2d는 이미 정의된 유용한 레이어의 라이브러리를 제공합니다.(간단한 메뉴 레이어 : Menu, 컬러 레이어 : ColorLayer, 서로 다른 레이어의 복합 레이어 : MultiplexLayer 등등)

레이어는 Sprite 오브젝트, Label 오브젝트, 다른 Layer 클래스의 자손과 같은 클래스를 포함할 수 있습니다.

레이어도 CocosNode의 서브클래스이므로 이는 액션을 사용하여 필요한 만큼 변형될 수 있습니다. 액션에 관한 자세한 내용은 Actions 페이지를 참조하시기 바랍니다.

스프라이트

cocos2d의 스프라이트는 다른 컴퓨터 스프라이트와 비슷합니다. 이는 이동, 회전, 크기변환, 애니메이션 등을 적용할 수 있는 2D 이미지입니다.

Sprite 클래스의 구현인 스프라이트는 자손클래스와 같은 다른 클래스를 포함할 수 있습니다. 부모 클래스가 변형될 때 모든 자손클래스도 잘 변형될 겁니다.

스프라이트도 CocosNode의 서브클래스이므로 이는 액션을 사용하여 필요한 만큼 변형될 수 있습니다. 액션에 관한 자세한 내용은 Actions 페이지를 참조하시기 바랍니다.