iOS 2009.04.13 10:59
cocos2d-iphone 는 OpenGL ES를 기반으로 하는 게임, 에니메이션, 데모등을 위한 2D 라이브러리입니다. 기본적인 에니메이션부터 메뉴, 스코어 서버까지 지원하기 때문에 빠른 시간에 편리하게 사용할 수 있습니다. cocos2d-iphone 사이트에서 최신 버젼을 다운로드 받으실 수 있습니다.



1. cocos2d 설정
1) 빌드
다운로드를 받으신 후에 압축을 풀고 Xcode Project 파일을 클릭하여 Xcode를 실행합니다. Active Target을 cocos2d로 하고 Actvie SDK를 Device로 빌드 합니다.


Active SDK를 Simulator로 하고 다시 한번 빌드합니다.


cocos2d는 프로젝트 자체에 여러 샘플소스들을 많이 가지고 있습니다. Target을 해당 데모로 변경하여 실행을 확인해 보실 수 있습니다.

2) 라이브러리 복사
해당 폴더의 빌드 폴더를 보시면 2개의폴더에 각각 libcocos2d.a와 libChipmunk.a가 같이 빌드되어 있습니다.


원하시는 곳에 폴더를 만드시고 이 두 폴더의 파일들을 각각 다른 폴더로 가져다 놓습니다. 저는 /Developer/Library 밑에 Cocos2d란 폴더를 만들고 그 밑에 Device와 Simulator 폴더를 만들어 각각의 라이브러리 파일들을 가져다 놓았습니다.

3) 헤더파일 복사
/Developer/Library/Cocos2d 밑에 헤더파일들을 복사하기 위해 Include 폴더를 새로 만듭니다. Include 폴더의 하위로 Support 폴더를 만듭니다. 다시 cocos2d 폴더로 와서 보시면 하위에 똑 같은 이름의 cocos2d란 폴더가 있습니다. 이 폴더내의 *.h을 위에서 생성한 Include 폴더로 복사합니다. 하위의 Support 폴더내의 *.h 파일도 해당 폴더의 Support 폴더내로 복사합니다. (파인더에서 정렬을 종류로 하시면 헤더파일별로 쉽게 가져 올 수 있습니다.)


그리고 cocos2d 폴더의 external/Chipmunk/src에 있는 *.h 파일도 위와 같이 생성한 Include 폴더로 복사합니다. Chipmunk는 게임등에 사용되는 물리엔진으로 컴파일을 위해 헤더파일이 꼭 필요하며 실제 사용하지 않을 경우에는 라이브러리는 추가하지 않으셔도 됩니다.

4) fps_images.png 복사
cocos2d가 초당 프레임수를 출력할 때 사용하는 이미지를 해당 프로젝트의 Resource 폴더에 복사해 놓으셔야 됩니다. 이 이미지가 없을 경우에는 아래와 같은 실행오류가 발생합니다.


cocos2d 폴더의 Resources/Images에 있는 fps_images.png 파일을 적당한 위치에 복사해 놓습니다.



2. Xcode 설정
Xcode에서 New Project를 클릭하여 iPhone OS/Application의 Window-Based Application으로 프로젝트를 생성합니다. 프로젝트명을 cocos2d App로 입력합니다.

1) Search Paths 설정
좌측과 같이 Groups & Files에서 프로젝트를 우클릭한 후에 Get Info를 클릭하여 Project 정보창을 오픈합니다.

두번째 Build에서 Search Paths항목에서 Header와 Library를 각각 해당 폴더로 입력합니다.

아래와 같이 Header Search Paths, Library Search Paths가 입력되어 있는 것을 확인합니다.

2) cocos2d 라이브러리 링크
Linking 항목중 OPther Linker Flags에 -lcocos2d를 입력합니다.


libcocos2d.a를 드래그 해서 직접 추가하여 사용하셔도 됩니다. 하지만 시뮬레이터와 디바이스의 선택에 따라 각각의 라이브러리 파일이 필요하기 때문에 Active SDK가 변경될 경우에는 매번 파일을 변경해 주어야 합니다.

그렇기 때문에 설정에서 Configuration이 Debug일때는 Library Search Paths를 Simulator로 Release일 때는 Device로 설정합니다. 시뮬레이터로 개발시에는 Debug 모드로 개발하고 실제 기기에서 테스트시나 업로드시에는 Release 모드를 선택하면 해당 라이브러리 파일의 변경없이 편하게 사용하실 수 있습니다.

3) 프레임워크 추가
cocos2d가 사용하는 OpenGL ES, QuartzCore 프레임워크를 추가합니다. 좌측과 같이 cocos2d App 타겟에 우클릭하여 Get Info를 클릭합니다.



General 항목의 좌측 하단에 [+] 버튼을 클릭합니다.
아래와 같이 OpenGLES.framework와 QuartzCore.framework를 선택하고 Add를 클릭합니다.


4) fps_images.png 추가
좌측과 같이 이전에 복사해 두었던 fps_images.png를 Resources 항목으로 드래그해서 가져다 놓습니다.



5) 프로젝트 템플릿 추가
cocos2d를 사용할 때마다 매번 위의 설정을 하는 것은 번거로운 작업입니다. 그렇기 때문에 기본설정된 항목을 템플릿에 추가하여 사용하는 것이 편리합니다. cocos2d App 프로젝트 폴더를  /Library/Application Support/Deveoper/Shared/Xcode/Project Templates/ 밑에 Application 폴더를 만드시고 그 아래에 복사합니다.
이제 새 프로젝트를 선택하면 User Templates/Application에 cocos2d App 항목이 나오며 위에서 cocos2d를 위해 설정된 사항대로 편리하게 사용하실 수 있습니다.

cocos2d에 관한 자세한 내용과 자료는 cocos2d-iphone 사이트에서 확인하실 수 있습니다.

'iOS' 카테고리의 다른 글

NSXMLParser로 RSS 읽어오기  (21) 2009.08.05
인터페이스빌더 Table View Cell 사용하기  (0) 2009.06.25
cocos2d 개발환경 설정  (24) 2009.04.13
iPhone SDK 3.0 beta 2  (4) 2009.04.05
UITableView의 메모리 누수 현상  (4) 2009.02.05
UIView에서 텍스트 출력  (10) 2009.01.13
모든 댓글을 환영합니다. (욕설과 광고는 삭제합니다.)
  1. yuripapa 2009.04.13 13:39  댓글주소  수정/삭제  댓글쓰기

    오우~ 감사합니다. 이거 많이 궁금했거덩요.... ^^

  2. 신나가이 2009.04.14 15:26  댓글주소  수정/삭제  댓글쓰기

    앗~ 감사합니다. 찾던걸 올려 주셧네요

  3. Favicon of http://rococoavenue.org BlogIcon 비군 2009.04.17 03:20  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 감사합니다~^^

  4. cashdow 2009.04.19 01:13  댓글주소  수정/삭제  댓글쓰기

    감사합니다 ㅎㅎ 기본 제공하는 템플릿은 7.0이네요 7.1에서 은근히 단어들이 많이 바껴서 일단 테스트해보려고 왔습니다.^^

  5. 버들피리 2009.04.22 02:36  댓글주소  수정/삭제  댓글쓰기

    좋은 정보네요. 잘 봤습니다. 그런데 Chipmunk 예제가 컴파일시 에러가 나던데.. 혹시 무슨 이유인지 아시나요?

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2009.04.23 13:38 신고  댓글주소  수정/삭제

      아마 라이브러리가 링크되지 않아서 그런 것 같습니다. Other Linker Flags에 -lChipmunk로 라이브러리를 추가하시면 될 것 같습니다.

  6. 불뚝 2009.04.27 16:11  댓글주소  수정/삭제  댓글쓰기

    에구 제가 자주와서 정보를 찾던 블로그인데 주인장이 쩔님이셨군요...
    저 기억하실지...저번 맥부기 정모때...늦게와서 쩔님 옆에 앉았었는데...흰옷입구...ㅋㅋ

    정말 많은 도움받고 있습니다...^^ 감사해요~

  7. 브라이언 2009.06.02 07:55  댓글주소  수정/삭제  댓글쓰기

    안녕하세요, 위에 올리신 대로 쭉 따라했는데 맨마지막 스텝에서 어찌해야 할 지 모르겠네요...프로젝트 템플릿 추가하는거요.... 뭘 복사하라는 것 같은데 말씀하신 폴더는 제 맥북에 없던데...그래서 만들어서 해봤는데...안되더라구요...????? 좀 도와주세요

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2009.06.02 11:30 신고  댓글주소  수정/삭제

      안녕하세요. 아마 계정 밑의 라이브러리 디렉토리에서 찾으신 것 같은데요. 시스템 루트에 있는 라이브러리 디렉토리에서 찾으셔야 할 것 같습니다.

      파인더의 좌측메뉴에서 장비 아래에 하드디스크 모양의 아이콘을 클릭하시고 찾으시면 될 것 같습니다.

  8. 브라이언 2009.06.03 21:37  댓글주소  수정/삭제  댓글쓰기

    안녕하세요, 일단 템플릿 등록하는 것 까지는 성공했습니다. 원인은 제가 폴더를 카피를 해야 하는데 링크만 걸었더군요. ^^; 그런데 문제가 또 하나 생겼습니다. xcode에서 새로 생긴 템플릿 선택하고 어플을 생성했서 빌드를 했더니 오류가 하나 나오네요. 오류가
    cd /Users/hyungzoomoon/NewCocos2dApp
    setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -resolve-src-symlinks /Users/hyungzoomoon/NewCocos2dApp/../Developer/Cocos2d/Images/fps_images.png "/Users/hyungzoomoon/NewCocos2dApp/build/Debug-iphonesimulator/cocos2d App.app"
    /Users/hyungzoomoon/NewCocos2dApp/../Developer/Cocos2d/Images: No such file or directory

    fps_images.png화일을 못찾는것 같은데...어찌해야 할지???? 이거 자동으로 카피하는거 아닌가요? 제생각에 뭔가 path를 잘못 잡은것 같긴한데....죄송하지만 한번만 더 도와주세요...^^

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2009.09.15 17:05 신고  댓글주소  수정/삭제

      댓글을 이제서야 보았네요. 죄송합니다.

      디렉토리가 잘못된 것 같은데 오류메시지에 나오는 디렉토리가 있는지 확인해 보셔야 할 것 같습니다. 아니면 fps_images.png를 프로젝트에서 삭제하시고 cocos2d에 디렉토리에 있는 fps_images.png를 Xcode의 리소스로 드래고 해서 가져오셔야 할 것 같습니다.

  9. 지나가던... 2009.09.14 16:17  댓글주소  수정/삭제  댓글쓰기

    /Library/Application Support/ 밑에 Deveoper/가 없는 이유는 뭘까요?

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2009.09.15 17:10 신고  댓글주소  수정/삭제

      글쎄요. 저도 잘 모르겠습니다.

      혹시 계정 아래의 라이브러리를 보신 것이 아니신가요? 파인더에서 맥컴퓨터를 클릭하시고 그 아래 디렉토리를 확인해 보시기 바랍니다.

  10. 지나가던 2009.09.18 05:05  댓글주소  수정/삭제  댓글쓰기

    자답합니다 ^^;; 루트에서 라이브러리 밑에서 어플리케이션 서포트 밑에서 디벨로퍼가 없으면
    그냥 만들어 주니까 되더군요;

  11. 지나가던... 2009.09.18 11:29  댓글주소  수정/삭제  댓글쓰기

    우와 답변이 빠르시네요^^;; 그럼 이참에 하나 더 물어봐야징.ㅎㅎ 아이폰 OS버전이랑 SDK버전이 같은건가요? 지금 SDK 3.0인데 2.2.1로 하시는 이유도 궁금합니다(지금 엄청 삽질중이에요 ㅠㅠ)
    마지막으로 궁금한건 get info해서 가져오는 설정과 프로그램 상단우측에 있는 설정을 동일하게 맞추어줘야 하나요? 어제 설정한게 찝찝해서 다시 설정했더니 다 엉커버리는군요^^;;;

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2009.09.18 15:09 신고  댓글주소  수정/삭제

      저때는 저게 새로운 버젼이었습니다. ^^; 우측상단이면 타겟을 설정하는 부분을 말씀하시는건가요? Get Info에서 설정한 값들은 Configuration에서 Release나 Debug등 선택된 해당 타겟에만 영향을 받습니다. All로 하면 전부 영향을 받고요.

  12. BlogIcon oz 2009.09.26 23:51  댓글주소  수정/삭제  댓글쓰기

    최신 코코스는 cocos2d 빌드하고 *.a 파일들이나 헤더 복사해 줄 필요가 없는 듯 합니다.
    설치 스크립트를 실행하니까 프로젝트 템플릿이 만들어지고, 새 프로젝트 시작할 때 cocos2d 로 선택하니까 알아서 소스와 헤더파일들이 프로젝트에 복사되고 빌드 하니까 Hello World 가 실행되더군요.
    빌드 폴더를 보니까 libcocos2d libraries.a 랑 MyCocos2d.app 가 생성되네요. (프로젝트명을 MyCocos2d 로 지어서 생성)
    그래서 cocos2d 를 따로 라이브러리로 빌드해서 사용 안해도 되는 것 같습니다.

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2009.09.27 13:13 신고  댓글주소  수정/삭제

      이제 설치 스크립트를 지원하나 보군요. 좋은 정보 감사합니다. :)

      사실 저도 그동안 제가 위에서 만든 템플릿은 사용안하고 그냥 처음부터 설정해서 사용했습니다. 이제 많이 편해질 듯 싶은데 cocos2d를 또 사용할 날이 언제 올지 모르겠습니다. ^^;