간단한 게임을 하나 만들어 볼려고 하는데 아이폰과 안드로이드 모두 지원하는 Cocos2d-x를 사용해 보기로 했다. NDK도 기존에 사용하던 r5에서 새로운 버전으로 설치하였다. 맥 라이언에서 NDK r7과 cocos2d-1.0.1-x-0.10.0 기준이다.

1. 다운로드 및 설치
1.1 NDK
안드로이드 개발자 사이트에서 최신버전인 r7을 다운로드 받고 압축을 푼 후에 적당한 폴더로 복사한다.

1.2 Cocos2d-x
cocos2d-x의 다운로드 페이지에서 최신버전인 cocos2d-1.0.1-x-0.10.0을 다운로드 받고 압축을 푼 후에 적당한 폴더로 복사한다.

둘다 설치는 간단하다. 다운로드 받고 압축을 푼 후에 원하는 폴더로 복사하면 된다. 

2. 설정 수정
복사해 놓은 cocos2d-1.0.1-x-0.10.0 폴더로 이동한다.

2.1 create-android-project.sh

NDK_ROOT="/home/laschweinski/android/android-ndk-r5"
ANDROID_SDK_ROOT="/home/laschweinski/android/android-sdk-linux_86"

상단에 위와 같이 되어 있는 부분을 아래와 같이 실제 NDK와 안드로이드 SDK가 설치된 폴더로 변경한다.

NDK_ROOT="/Users/zzerr/android-ndk-r7"
ANDROID_SDK_ROOT="/Developer/SDKs/android"

2.2 ./cocos2dx/Android.mk

NDK r7에선 glplatform.h의 GL_GLEXT_PROTOTYPES 이 제거되어 컴파일시 오류가 발생한다. 설치된 폴더내에 cocos2d-x 폴더의 Android.mk를 열어 아래와 같이 수정한다. 

LOCAL_CFLAGS := -DUSE_FILE32API


하단의 위와같이 되어 있는 LOCAL_CFLAGS를 찾아 아래와 같이 GL_GLEXT_PROTOTYPES를 추가한다. 
 

LOCAL_CFLAGS := -DUSE_FILE32API -DGL_GLEXT_PROTOTYPES=1



3. 프로젝트 생성
3.1 create-android-project.sh 실행
안드로이드 프로젝트 생성을 위해서 cocos2d-x 폴더에서 create-android-project.sh 를 실행한다. 

 
실행후에 package path를 입력받는데 적당한 이름을 입력한다. 


다음으로 타겟 안드로이드 SDK 버전을 입력한다. 출력되는 리스트중에서 선택을 한후 'id:' 다음에 나오는 숫자를 입력한다.


그리고 프로젝트명을 입력하면 cocos2d-x 폴더 아래에 프로젝트 이름으로 프로젝트 폴더가 생성된다. 이클립스에서 새로운 프로젝트를 생성하고 위에서 생성된 프로젝트 폴더에서 android 폴더를 선택한다.

3.2 build_native.sh 실행
[프로젝트명]/android 폴더에 있는 build_native.sh를 실행하여 필요한 라이브러리들을 빌드하여 생성한다.

3.3 빌드 및 테스트
이클립스에서 빌드 후 테스트를 한다.


갤럭시탭에서 실행해서 화면에 빈공간이 많은 것 같다. 위에서 프로젝트 생성시 타겟 목록에 따로 갤럭시탭이 있기는 하다.
AND