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 的方法是大同小异的,请大家自己举一反三吧。
更多相关文章
- Android(安卓)添加同名通讯录自动合并的问题
- Android(安卓)基础
- 去掉Android(安卓)USB授权框
- 丢失Android系统库或者Conversion to Dalvik format failed with
- 2011.10.19(3)——— android 一个便签的Widget例子
- msm8909编译环境搭建
- Android自定义标题栏
- [Android] 一键修改从网上厨房制作的Android百分比电量过大的问
- 如何在android上打印dom树,render树,display_tree