cocos2d-x 1.0.1 for Android 使用Box2D

环境:2dx-1.0.1-x-0.9.2

ps:在1.0.1版本,新建一个android项目,缺少一个default.properties  拷贝一个到androud目录下


但是to android的时候编译会出错 因为2dx for android 工程并没有加入Box2D库

需要修改下列文件:

jni目录下

Application.mk

APP_MODULES := cocos2d box2d cocosdenshion game_logic game

Android.mk
subdirs := $(addprefix $(LOCAL_PATH)/。。/。。/,$(addsuffix /Android.mk, \
cocos2dx \
Box2D \
CocosDenshion/android \

))

helloworld里面的Android.mk

$(LOCAL_PATH)/。。/。。\
$(LOCAL_PATH)/。。/。。/Classes

LOCAL_LDLIBS := -L$(call host-path, $(LOCAL_PATH)/。。/。。/libs/$(TARGET_ARCH_ABI)) \
-lcocos2d -llog -lgame_logic -lbox2d



Classes里面的Android.mk

LOCAL_C_INCLUDES := $(LOCAL_PATH)/。。/。。/cocos2dx \
$(LOCAL_PATH)/。。/../ \
$(LOCAL_PATH)/。。/../Box2D \

LOCAL_LDLIBS := -L$(call host-path, $(LOCAL_PATH)/../android/libs/$(TARGET_ARCH_ABI)) \
-lcocos2d -lcocosdenshion -lbox2d \

这样就可以了

ps.如果提示导入box.h错的 主要是修改一下BOX2D的位置 $(LOCAL_PATH)/。。/../Box2D \ 就可以了

 

转自:http://leenjewel.blog.163.com/blog/static/60193792201162710514314/

在上一篇日志《cocos2d-x 中使用 Box2D》中遗漏了一个步骤,很可能引发 android 程序的意外崩溃。现在在这里补充说明一下。按照上一篇日志《cocos2d-x 中使用 Box2D》操作完成后,还需要对 android 工程的主 Activity 类(继承自 Cocos2dxActivity)文件进行修改。在 cocos2d 生成的标准 android 工程文件中有一个主 Activity 类文件,在该文件的最后有类似如下的代码:

                static {
                         System.loadLibrary("cocos2d");
                         System.loadLibrary("cocosdenshion");
                         System.loadLibrary("game");
                 }

        在这里需要将 box2d 库做引入。不过需要特别注意的是,引入 box2d 库的 System.loadLibrary 语句的位置。引入 box2d 库的语句一定要放在 System.loadLibrary("game") 语句之前,也就是要保证 System.loadLibrary("game") 语句是最后一个引入的操作语句。修改完成后的代码应该是这样子:

                static {
                         System.loadLibrary("cocos2d");
                         System.loadLibrary("box2d");
                         System.loadLibrary("cocosdenshion");
                         System.loadLibrary("game");
                 }

        这样的话,在 cocos2d-x 中引入 Box2D 制作的程序就可以顺利的运行了。其实不仅是 Box2D,在 cocos2d-x 中还有其他一些引擎,需要引入这些库的方法和引入 Box2D 的方法是大同小异的,请大家自己举一反三吧。

你可能感兴趣的:(cocos2d-x)