프로그래밍/Cocos2D2009. 11. 6. 16:42
2009.06.28 12:51:39(*.76.17.65)
조회수:2341

cocos2d는 openGL을 사용하서 iPhone/IPot touch용 게임을 개발하기에 편리한 API이다. Menu, sprite, tilemap등 편리한 여러가지 기능을 제공하며, Chipmunk를 통해서 물리엔진까지 쉽게 사용할 수 있다. 자세한 내용과 최신 버젼은 cocos2d-iphone 사이트에서 확인할 수 있다.

(현재 만들 개발환경은 cocos2d 0.7.3버젼을 가지고 iPhone SDK 3.0에 최적화된 환경입니다.)


cocos2d-iphone은 소스파일을 직접 추가해서 개발을 할 수도 있지만 라이브러리를 링크하는 방식으로 개발할 수도 있다. 처음 개발을 할 때 라이브러리의 작동방식을 공부하기를 원한다면 소스를 직접 추가해서 하는 방식을 추천하지만 그렇지 않다면 라이브러리로 개발하는 것이 편리하다. 여기서는 라이브러리를 링크해서 개발 환경을 구축하는 것을 알아보겠다.


cocos2d-iphone 다운로드


1. 라이브러리 컴파일 하기

cocos2d-iphone에서 최신 버젼의 소스를 다운로드한다. iPhone OS 3.0 으로 변경되면서 많은 부분이 좀 까탈스러워졌다. 그러므로 3.0에서도 지원을 하게원한다면 0.7.3 이상의 버젼을 이용하는 편이 좋다. 다운로드한 소스를 압축을 풀면 Xcode의 프로젝트로 열수 있는 xcodeproj확장자를 실행한다.


Xcode SDK에서 좌측상단에 보면 개발 환경을 설정할 수 있는 Select box가 있다. 이걸 눌러서 위에서부터 다음과 같이 선택한다.


Active SDK : iPhone Device 2.2.1

Active Conficuration : Release

Active Target : cocos2d

이와 같이 선택한 다음에 Build(Command-B)를 한다. Build and Go가 아니다. 좀 기다리면 우측 하단에 진행되는 표시가 Succeed라고 표시될 것이다. 이렇게 되면 라이브러리가 컴파일된 것이다. 


같은 방법으로,


iPhone Device 2.2.1 - Release - Chipmunk

iPhone Simulator 2.2.1 - Release - cocos2d

iPhone Simulator 2.2.1 - Release - Chipmunk


이렇게 3개를 더 컴파일 해준다.  Chipmunk는 단순히 openGL의 간단한 라이브러리가 아닌 물리엔진 등을 위해 사용하는 라이브러리이다. 


2. 라이브러리 및 참조 파일들 복사

    1) 라이브리러 복사

라이브러리를 참조하기 위해서 라이브러리 디렉토리를 다음의 위치에 만든다. /Developer/Library/Cocos2d 

앞에서 컴파일한 라이브러리 파일들은 모두 Build 디렉토리에 존재하게 된다. 이 라이브러리 파일들을 Device와 Simulator에 따라서 다음과 같이 Release-iphoneos는 Device에 Release-iphonesimulator는 Simulator에 복사한다.

그림 15.png 

  →    

그림 16.png 


   

     2) 헤더파일 복사

압축을 푼 cocos2d-iphone디렉토리에 보면 cocos2d라는 디렉토리가 있는데, 여기에 cocos2d의 헤더파일들이 들어 있다. Support 디렉토리까지 통채로 /Developer/Library/Cocos2d/Include에 복사한다.

 그림 11.png 


    3)  fps_images.png 복사

이제 마지막으로 fps의 진행등을 숫자로 표시할 수 있는 이미지를 기본으로 추가해줘야 한다. Resouce하위에 fps_images.png라는 파일을 찾을 수 있을 것이다 이 파일을 /Developer/Library/Cocos2d/Images에 복사해준다.

그림 12.png 



3. Xcode 설정

이제 호출할 수 있는 라이브러리 준비를 마쳤고 실제로 Xcode 에서 개발할 수 있는 환경을 설정해보자. 먼저 Xcode의 새로운 프로젝트를 생성해서 Window-base application을 선택해서 Cocos2d라는 프로젝트명으로 프로젝트를 생성한다.

그림 27.png    


    1) Path 추가

cocos2d의 헤더와 라이브러리가 있는 디렉토리를 Path로 설정해줘야 참조를 할 수 있으므로 Groups & Files에서 제일 위에 있는 Cocos2d를 선택해서 마우스 오른쪽 키를 눌러 Get Info를 선택한다. 또는 SDK 상단의 Info 아이콘을 선택한다.

그림 28.png   그림 29.png

Project "Cocos2d" Info 다이얼로그에서 build탭을 선택한다. 하단을 스크롤하다보면 Search Path의 Header Search Paths와 Library Search paths를 찾을 수 있다.


여기서 Header Search Paths를 더블클릭해서 Cocos2d의 헤더파일이 있는 디렉토리(/Developer/Library/Cocos2d/Include)를 추가해 준다. 추가할 때 Support도 참조할 수 있도록 recursive를 체크한다.


그리고 Library Search Paths에도 라이브러리가 있는 디렉토리를 추가해 준다. 이 때에는 하위 디렉토리에서 참조할 라이브러리가 없으므로 recursive를 체크할 필요는 없다.

그림 20.png 

그림 18.png 


개발완료된 후에 배포를 할 때에는 Device로 컴파일을 해야 하므로, 위쪽의 Configuration을 눌러서 Release로 바꾼 다음에 Library Search Paths를 /Developer/Library/Cocos2d/Device로 한번 더 설정해 준다.

 

그림 30.png 


    2) Link 추가

Project "Cocos2d" Info 다이얼로그에서 스크롤을 하다보면 Linking의 Other Linker Flags를 볼 수 있는데 여기서 외부 참조할 라이브러리를 입력할 수 있다. 그런데 등록할 라이브러리는 -l옵션을 사용하고 라이브러리 명이 libcocos2d.a일 때 cocos2d만 사용해서 다음과 같이 입력한다. (참고 : objective-c는 기본적으로 gcc 컴파일러를 사용하는데 gcc 라이브러리들은 lib[라이브러리명].a로 구성이 되어 진다.) 


그리고 물리엔진도 필요에 따라서 다음과 같이 추가해 준다.

그림 17.png 


    3) 참조 이미지 추가

 그림 21.png

 /Developer/Library/Cocos2d/image에 복사한 참조 이미지를 프로젝트의 Resource Group에 추가해 준다. 드래그해서 Resources에 끌어다 놓으면 된다.



    4) 프레임워크 추가

cocos2d가 OpenGL을 참조하는 API이므로 iPhone SDK에서 제공하는 그림을 그리는 QuartzCore와 OpenGLES를 추가한다.


Group & Files->Target->Cocos2d를 마우스 오른쪽 키를 크릭하거나 상단메뉴에서 info아이콘을 크릭해서 Target "Cocos2d" Info 다이얼로그를 띄운다.

그림 24.png 


그림 25.png 


여기서  Linked Libraries 아래에 있는 +를 크릭해서 OpenGLES.framework와 QuartzCore.framework를 선택해서 추가한다.

그림 26.png 



    5) MainWindow.xib 설정변경

iPhone OS 3.0으로 변경되면서 전 버젼에서는 무시했던 것들을 세세하게 검사를 하기 때문에 2.2.1에서는 잘 실행이되지만 3.0에서는 화면이 하얗게만 표시되는 경우가 있다. 이는 2.2.1에서는 Interface Builder에서 연결을 설정했더라도 소스에서 재코딩을 하면 무시되었던 것이 우선순위가 interface Builder설정으로 변경된 것 같다.(이것은 어디까지나 나만의 생각이다. ^^;;) 


그러므로 Window-base Application으로 프로젝트를 생성하면 MainWindow.xib에서 기본 바탕화면이 하얀 Window가 App Delegate에 연결되어 있기 때문에 아무리 하단에 그림을 그리더라도 하얀 window가 덮어 씌워버리기 때문이다. 그러므로 이를 풀어줘야 한다. 


그러기 위해서 Resouces의 MainWindow.xib를 더블크릭해서 Interface Builder를 연다. 맨 끝에 Window 항목이 보이는데 (여기서 Window를 마우스 오른쪽 키로 크릭하면 다음과 같이 Delegete와 연결되어 있는 것을 확인할 수 있다), 이를 과감하게 Del 키를 눌러 지워준다. 그리고 저장한다.


그림 22.png  

→ 

그림 23.png  


이제 기본 설정을 완료했다. Build and Go를 해보면 시커먼 화면이 잘 뜰 것이다. ㅋㅋ
이제부터 여러분이 원하는 것을 개발하면 된다.



4. Xcode 템블릿 만들기

위와 같은 설정을 매번 Cocos2d를 사용하는 프로젝트를 할 때마다 설정을 해줘야 한다면 정말 귀찮을 것이다. 그래서 템플릿으로 설정을 해놓으면 Window-base Application을 선택해서 프로젝트를 생성할 수 있듯이 Cocos2d프로젝트를 생성할 수 있다. 


단순히 지금까지 생성한 Cocos2d의 디렉토리 전체("위치>windship"에 생성된 Cocos2d 폴더)를 /Library/Application Support/Developer/Shared/Xcode/Project Templates/Application 하위에 복사해 준다.

그러면 다음과 같이 새 프로젝트를 만들 때 Cocos2d를 선택할 수 있을 것이다. 

그림 31.png 


다음은 지금까지 설정된 내용을 압축한 파일입니다. 이를 그냥 위의 템플릿 디렉토리에 압축을 풀어도 됩니다. cocos2d.zip(cocos2d-iphone 0.7.3 기준, iphone 2.2.1 로 컴파일 됨)

'프로그래밍 > Cocos2D' 카테고리의 다른 글

Cocos2d 애니메이션 구현하기 3  (0) 2009.11.06
Cocos2d 애니메이션 구현하기 2  (0) 2009.11.06
Cocos2d 애니메이션 구현하기 1  (0) 2009.11.06
메뉴 만들기  (0) 2009.11.06
Cocos2d의 구성  (1) 2009.11.06
Posted by windship