天天看點

COCOS2D-X編譯成android的項目

 今天對cocos2d-x編譯成android做個筆記,本文使用的是2.2.1版本。這裡指記錄如何編譯。本文主要參考http://blog.csdn.net/sttyytw/article/details/17005263

1、建立通過python來建立項目

1

<code>python create_project.py </code><code>-</code><code>project helloworld </code><code>-</code><code>package com.xzw.game </code><code>-</code><code>language cpp</code>

 另外提供批處理,友善下次建立:

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<code>@</code><code>echo</code> <code>off</code>

<code> </code><code>:label1</code>

<code> </code><code>@cls</code>

<code> </code><code>echo</code> <code>歡迎使用Python建立Cocos2d-x工程</code>

<code> </code><code>set</code> <code>/p</code> <code>project=請輸入需要建立的工程名:</code>

<code> </code><code>set</code> <code>/p</code> <code>aID=請輸入需要建立的android版本包辨別名:</code>

<code> </code><code>echo</code> <code>您輸入的工程名為%project%</code>

<code> </code><code>echo</code> <code>您輸入的android版本包辨別名為%aID%</code>

<code> </code><code>echo</code> <code>确認建立工程嗎?</code>

<code> </code><code>CHOICE </code><code>/C</code> <code>123 </code><code>/M</code> <code>"确認請按 1,取消請按 2,或者退出請按 3。"</code>

<code> </code><code>echo</code> <code>%errorlevel%</code>

<code> </code><code>if</code> <code>%errorlevel%==1 goto label2</code>

<code> </code><code>if</code> <code>%errorlevel%==2 goto label1</code>

<code> </code><code>if</code> <code>%errorlevel%==3 goto label3</code>

<code> </code><code>:label2</code>

<code> </code><code>echo</code> <code>正在建立工程...</code>

<code> </code><code>python create_project.py -project %project% -package %aID% -language cpp</code>

<code> </code><code>:label3</code>

<code> </code><code>pause</code>

<a href="http://s3.51cto.com/wyfs02/M00/11/67/wKioL1LOZPewKWVhAAH3GcXskgI882.jpg" target="_blank"></a>

建立好後會在cocos2d-x-2.2.1\projects目錄下。

2、使用cygwin進入proj.android目錄下,然後執行./build_native.sh就可以進行編譯了。

<a href="http://s3.51cto.com/wyfs02/M00/11/67/wKioL1LObFGhTbsXAAOZr63cMRA798.jpg" target="_blank"></a>

前提是需要對build_natvie.sh進行修改,這樣才能夠自動将所需要cocos2d-x的類加到工程中。

首先在cygwin中添加cocos2d-x的配置

<code>COCOS2DX_DIR=</code><code>/cygdrive/e/resource/cocos2d-x/cocos2d-x-2</code><code>.2.1</code><code>/cocos2d-x-2</code><code>.2.1</code>

<code>export</code> <code>COCOS2DX_DIR</code>

然後修改cocos2d-x-2.2.1\template\multi-platform-cpp\proj.android下的build_native.sh檔案進行修改。如下圖:

<a href="http://s3.51cto.com/wyfs02/M00/11/67/wKiom1LObsbxXSYcAAdvufsrTKI669.jpg" target="_blank"></a>

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

<code>APPNAME=</code><code>"HelloCpp"</code>

<code># options</code>

<code>buildexternalsfromsource=</code>

<code>usage(){</code>

<code>cat</code> <code>&lt;&lt; EOF</code>

<code>usage: $0 [options]</code>

<code>Build C</code><code>/C</code><code>++ code </code><code>for</code> <code>$APPNAME using Android NDK</code>

<code>OPTIONS:</code>

<code>-s  Build externals from </code><code>source</code>

<code>-h  this help</code>

<code>EOF</code>

<code>}</code>

<code>while</code> <code>getopts</code> <code>"sh"</code> <code>OPTION; </code><code>do</code>

<code>case</code> <code>"$OPTION"</code> <code>in</code>

<code>s)</code>

<code>buildexternalsfromsource=1</code>

<code>;;</code>

<code>h)</code>

<code>usage</code>

<code>exit</code> <code>0</code>

<code>esac</code>

<code>done</code>

<code># paths</code>

<code>if</code> <code>[ -z </code><code>"${NDK_ROOT+aaa}"</code> <code>];</code><code>then</code>

<code>echo</code> <code>"please define NDK_ROOT"</code>

<code>exit</code> <code>1</code>

<code>fi</code>

<code>if</code> <code>[ -z </code><code>"${COCOS2DX_DIR+aaa}"</code> <code>];</code><code>then</code>

<code>echo</code> <code>"please define COCOS2DX_DIR"</code>

<code>DIR=</code><code>"$( cd "</code><code>$( </code><code>dirname</code> <code>"${BASH_SOURCE[0]}"</code> <code>)</code><code>" &amp;&amp; pwd )"</code>

<code># ... use paths relative to current directory</code>

<code>COCOS2DX_ROOT=</code><code>"$DIR/../../.."</code>

<code>APP_ROOT=</code><code>"$DIR/.."</code>

<code>APP_ANDROID_ROOT=</code><code>"$DIR"</code>

<code>echo</code> <code>"COCOS2DX_DIR = $COCOS2DX_DIR"</code>

<code>echo</code> <code>"NDK_ROOT = $NDK_ROOT"</code>

<code>echo</code> <code>"COCOS2DX_ROOT = $COCOS2DX_ROOT"</code>

<code>echo</code> <code>"APP_ROOT = $APP_ROOT"</code>

<code>echo</code> <code>"APP_ANDROID_ROOT = $APP_ANDROID_ROOT"</code>

<code># make sure assets is exist</code>

<code>if</code> <code>[ -d </code><code>"$APP_ANDROID_ROOT"</code><code>/assets</code> <code>]; </code><code>then</code>

<code>    </code><code>rm</code> <code>-rf </code><code>"$APP_ANDROID_ROOT"</code><code>/assets</code>

<code>mkdir</code> <code>"$APP_ANDROID_ROOT"</code><code>/assets</code>

<code># copy resources</code>

<code>for</code> <code>file</code> <code>in</code> <code>"$APP_ROOT"</code><code>/Resources/</code><code>*</code>

<code>do</code>

<code>if</code> <code>[ -d </code><code>"$file"</code> <code>]; </code><code>then</code>

<code>    </code><code>cp</code> <code>-rf </code><code>"$file"</code> <code>"$APP_ANDROID_ROOT"</code><code>/assets</code>

<code>if</code> <code>[ -f </code><code>"$file"</code> <code>]; </code><code>then</code>

<code>    </code><code>cp</code> <code>"$file"</code> <code>"$APP_ANDROID_ROOT"</code><code>/assets</code>

<code>for</code> <code>file</code> <code>in</code> <code>"$COCOS2DX_DIR"</code><code>/cocos2dx/platform/android/java/src/</code><code>*</code>

<code>    </code><code>cp</code> <code>-rf </code><code>"$file"</code> <code>"$APP_ANDROID_ROOT"</code><code>/src</code>

<code>    </code><code>cp</code> <code>"$file"</code> <code>"$APP_ANDROID_ROOT"</code><code>/src</code>

<code># run ndk-build</code>

<code>if</code> <code>[[ </code><code>"$buildexternalsfromsource"</code> <code>]]; </code><code>then</code>

<code>    </code><code>echo</code> <code>"Building external dependencies from source"</code>

<code>    </code><code>"$NDK_ROOT"</code><code>/ndk-build</code> <code>-C </code><code>"$APP_ANDROID_ROOT"</code> <code>$* \</code>

<code>        </code><code>"NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/source"</code>

<code>else</code>

<code>    </code><code>echo</code> <code>"Using prebuilt externals"</code>

<code>        </code><code>"NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/prebuilt"</code>

3、eclipse導入比運作

<a href="http://s3.51cto.com/wyfs02/M02/11/67/wKiom1LObIfiN_GNAAFIWPOiBMY664.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M01/11/67/wKioL1LObHviohPVAAHqi_di1BY297.jpg" target="_blank"></a>

運作即可。就這麼就記錄了。

本文轉自xuzw13 51CTO部落格,原文連結:http://blog.51cto.com/xuzhiwei/1350191,如需轉載請自行聯系原作者