Android/Cocos

코코스 개발환경 세팅

moonwoou 2014. 12. 4. 11:58

++++++++++++++++++++++++++++++

+ 코코스 개발환경 세팅

++++++++++++++++++++++++++++++


코코스 다운로드 - 환경변수 : path > 코코스 경로

http://www.cocos2d-x.org/download

path > COCOS_CONSOLE_ROOT

C:\Apps\Mobile\cocos2d-x-3.1.1\tools\cocos2d-console\bin


파이썬 다운로드 - 환경변수 : path > C:\Apps\Mobile\Python

https://www.python.org/download (cocos-2dx의 경우 python 2.x대 버전 설치를 권장)


프로젝트 생성

C:\Apps\Mobile\cocos2d-x-3.1.1\tools\cocos2d-console\bin

> cocos new 프로젝트명 -p 패키지명 -l cpp



++++++++++++++++++++++++++++++

+ 안드로이드 포팅 환경 구축

++++++++++++++++++++++++++++++


Java SDK 설치 (JDK 선택) - 환경변수 : JAVA_HOME > Java SDK 경로 입력

http://www.oracle.com/technetwork/java/javase/downloads/index.html


안드로이드 SDK 설치 - 실행후 Android SDK Manager에서 필요한 항목 인스톨

http://developer.android.com/tools/sdk/index.htmln


NDK 설치

http://developer.android.com/tools/sdk/ndk/index.html


ANT 설치

http://ant.apache.org/bindownload.cgi


코코스 환경 설정

명령프롬프트에서 메인 폴더로 이동 후 다음 구문 실행

> python setup.py

SDK 경로 : adt폴더 하위의 sdk폴더까지 입력

ANT 경로 : apache-ant 하위의 bin폴더까지 입력


안드로이드 컴파일

작업 프로젝트의 하위 폴더인 proj.android로 이동

> cocos complie 프로젝트명 -p android

성공하면 bin폴더안에 컴파일한 apk파일 생성됨


안드로이드 실행

단말기 연결후 다음 실행

> cocos run 프로젝트명 -p android



++++++++++++++++++++++++++++++

+ 이클립스에서 실행

++++++++++++++++++++++++++++++


import : Existing Android Code Into Workspace

C:\Apps\Mobile\cocos2d-x-3.1.1\tools\cocos2d-console\bin\seoljoo\proj.android

C:\Apps\Mobile\cocos2d-x-3.1.1\tools\cocos2d-console\bin\seoljoo\cocos2d\cocos\platform\android\java




++++++++++++++++++++++++++++++

+ 추가 라이브러리 사용

++++++++++++++++++++++++++++++


http://www.gamedevforever.com/m/post/308



++++++++++++++++++++++++++++++

+ 안드로이드 포팅시 특이사항

++++++++++++++++++++++++++++++


.....proj.android\../cocos2d/cocos/./Android.mk:cocos2dx_static: LOCAL_LDLIBS is always ignored for static libraries

에러 발생시 해당 파일에 다음 한 줄 추가

LOCAL_CFLAGS := -w



CPP로 작업후 안드로이드로 포팅시

jni/Android.mk 파일에 Cpp파일 경로 수작업으로 등록



cpp 및 h 파일들이 추가되면 PROJECT/proj.android/jni/android.mk에 일일이 기술해줘야 함. 그렇게하면 귀챦으므로 디렉터리 내 파일들을 자동으로 포함되도록

수정. 다음 라인을

LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/HelloWorldScene.cpp

다음과 같이 수정

GAME_SOURCE_DIR := $(LOCAL_PATH)/../../Classes
GAME_SOURCE_FILES := $(foreach file, $(notdir $(wildcard $(GAME_SOURCE_DIR)/*.cpp)), ../../Classes/$(file))
LOCAL_SRC_FILES := hellocpp/main.cpp ../ $(GAME_SOURCE_FILES)


LOCAL_WHOLE_STATIC_LIBRARIES, import-module 부분도 추가
LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_gui_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocostudio_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_network_static
…
$(call import-module,2d)
$(call import-module,audio/android)
$(call import-module,Box2D)
$(call import-module,gui)
$(call import-module,extensions)
$(call import-module,editor-support/cocostudio)
$(call import-module,network)


기본적으로 생성한 프로젝트가 win32는 chipmunk를 사용하게 설정 되어있는 반면 android는 box2d를 사용하게 설정 되어있는 점 유의할 것



http 통신을 위해 curl을 이용하는 경우 라이브러리를 별도로 추가해줘야함

솔루션 탐색기 > 프로젝트에서 우클릭 > 프로퍼티 > Configuration > Linker > input > additional dependices > libcurl_imp.lib 추가


++++++++++++++++++++++++++++++

+ pkm to png

++++++++++++++++++++++++++++++

cd C:\Users\Administrator\Desktop\프로젝트명\assets\res\common\tex\backgrounds

C:\Apps\SDK\android-sdks\tools\etc1tool.exe w0_bg.pkm --decode -o w0_bg.png



++++++++++++++++++++++++++++++

+ 3.2 안드로이드 포팅

++++++++++++++++++++++++++++++


+ Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lorg/cocos2dx/lib/Cocos2dxAccelerometer 일때


Java Build Path > Libraries > Android Dependensies 제거




+ This Project is not a CDT project


Assuming you've got the CDT plugin installed

Right-click on the project.

Select: New -> Other

Under C/C++, select "Convert to a C/C++ project"






++++++++++++++++++++++++++++++

+ 참고 프로젝트

++++++++++++++++++++++++++++++


FlappyBird: [https://github.com/makeapp/cocoseditor-flappybird]

PopStar: [https://github.com/makeapp/cocoseditor-popstar]

FruitNinja: [https://github.com/makeapp/cocoseditor-fruitninja]

MoonWarriors: [https://github.com/makeapp/cocoseditor-moonwarriors]

FruitAttack: [https://github.com/makeapp/cocoseditor-fruitattack]

TestsJavascript: [https://github.com/makeapp/cocoseditor-tests]

2048: [https://github.com/makeapp/cocoseditor-2048]

PianoTiles: [https://github.com/makeapp/cocoseditor-piano]