본문 바로가기
개발/Cocos2d-x

[Cocos2d-x] 2.0.x 버젼 통합 프로젝트(iOS & Android) 만들기

by 가리봉맨 2012. 10. 5.
반응형

cocos2d-x가 cocos2d-iphone 2.0을 기반으로 한 2.0.x 로 버젼업되면서 템플릿 프로젝트의 구조가 상당히 달라졌다. 기존 cocos2d-x 1.0.x 버젼으로 통합 프로젝트를 만드는 방법에 대한 포스트는 많다. 하지만 위에도 언급했듯이 2.0.x 에서 달라진 부분이 꽤 있어서 그대로 따라 하기에는 무리가 있었다. 


혼자 삽질하면서 겨우겨우 셋팅에 성공하기는 했는데 다른 분들은 이런 삽질을 안 하도록 그 과정을 공유하려 한다. 아래 포스트는 cocos2d-x 1.0.x 기반의 통합 프로젝트 만들기 튜토리얼이다. 그대로 따라하면서 2.0.x와 틀린 부분을 찾아서 고쳐 가면서 새 프로젝트를 만들어 봤다.


Creating an iPhone and Android Cocos2D-x hybrid project (updated) ]


위 튜토리얼은 "1. iPhone 프로젝트 생성 -> 2. Android 프로젝트 생성 -> 3. Android 프로젝트를 iPhone 프로젝트에 통합". 이렇게 3단계로 진행된다. iPhone 프로젝트 생성(1. Creating the iPhone project) 및 Android 프로젝트 생성(2. Creating the Android project) 까지는 그대로 따라하면 된다. 

  

마지막 "Android 프로젝트를 iPhone 프로젝트에 통합(3. merge the Android project into the iPhone project)" 부분은 2.0.x에서 달라진 부분을 고치고 빠진 부분을 덧붙여서 설명해 보겠다.




먼저 vi, nano 등의 편집기를 사용해서 아래 디렉토리에 makefile을 새로 만든다. 

$COCOS2DX_ROOT/SimpleGame/android/


내용은  아래와 같다.

 clean:
     rm -rf libs/

     rm -rf obj/

이 때 rm 앞의 공백은 반드시 탭으로 만들어 줘야 한다. 안 그러면 make 시 에러가 난다.


그리고 미리 컴파일된 라이브러리들을 clean up 해 준다.

 cd $COCOS2DX_ROOT/SimpleGame/android
 make clean





다음으로 안드로이드 프로젝트에 있는 일부 디렉토리 및 파일들을 메인(iPhone) 프로젝트로 복사한다.


첫번째,  $COCOS2DX_ROOT/SimpleGame/ 에서 proj.android 디렉토리를 
SimpleGame/SimpleGame/ 로 통째로 복사한다.


두번째,  $COCOS2DX_ROOT/cocos2dx/ 에서 Android.mk 파일을 
SimpleGame/SimpleGame/libs/cocos2dx/ 로 복사한다.


세번째, $COCOS2DX_ROOT/CocosDenshion/ 에서 android 디렉토리를 
SimpleGame/SimpleGame/libs/CocosDenshion/로 복사한다. 이 때, 이미 iPhone 프로젝트에 해당 디렉토리가 존재하므로 복사하기 전에 먼저 이를 삭제해야 한다.


네번째, $COCOS2DX_ROOT/cocos2dx/ 에서 platform 디렉토리를
SimpleGame/SimpleGame/libs/cocos2dx/ 로 복사한다. 마찬가지로 이미 iPhone 프로젝트에 해당 디렉토리가 존재하므로 복사하기 전에 먼저 이를 삭제해야 한다.


마지막으로 (참고한 튜터리얼에는 빠져 있음) $COCOS2DX_ROOT/extensions/ 에서 Android.mk 파일을 SimpleGame/SimpleGame/libs/extensions/ 로 복사한다. 

그리고 $COCOS2DX_ROOT/extensions/GUI/CCEditBox/ 에서 CCEditBoxImplAndroid.cpp, 
CCEditBoxImplAndroid.h 파일을 
SimpleGame/SimpleGame/libs/extensions/GUI/CCEditBox 로 복사한다.


복사가 모두 끝나면 아래 그림과 같은 모양이 된다. 



iOS(iPhone) 프로젝트와 Android 프로젝트가 같은 프로젝트 루트(SimpleGame)아래 위치해 있는 것을 확인할 수 있다. 또한 libs 디렉토리 아래 있는 cocos2dx 라이브러리도 공유하게 된다.




그리고  proj.android/build_native.sh 파일을 편집한다.

COCOS2DX_ROOT="$DIR/../.." 를 COCOS2DX_ROOT="$DIR/../libs" 로 고쳐 준다.


이제 proj.android/ 디렉토리로 가서 터미널에서 다음을 실행한다.

 make clean

마지막으로 build_native.sh 를 같은 디렉토리에서 실행한 뒤, 컴파일이 성공적으로 끝나는 것을 확인한다. 끝!


반응형

댓글