mac下面xcode+ndk7配置cocos2dx & box2d的跨ios和android平台的游戏教程
来源:互联网 发布:淘宝客的优惠券怎么找 编辑:程序博客网 时间:2024/04/29 19:26
转自:http://www.cnblogs.com/zilongshanren/archive/2012/03/04/2377873.html
首先,按照上一篇教程,搭建好mac下面的cocos2dx和android开发环境,注意配置好一些环境变量的值,比如$COCOS2DX_ROOT等。然后使用Xcode建立一个cocos2dx_box2d项目,命名为Box2DTest,如下图所示:
然后,还是和之前一样,用cocos2dx安装目录下的脚本来创建一个android工程,我们把这个工程命名为Box2DTest。
接下来,就是创建一个makefile了:
首先,选择一个你最喜欢的文本编辑器,然后cd到刚刚这个Box2DTest的android目录下面,然后打开terminal,输入:
vim makefile//然后会创建一个新的窗口,接着输入i进入编辑模式,然后键入下面3条语句clean: rm -rf libs/ rm -rf obj/
请特别注意,这里的clean:是顶格输入的,而两条rm语句是使用tab键缩进的。如果不缩进,则输入make clean的时候会报错。
输入完后,esc(回到命令模式) :wq 回车,保存并退出。ok,搞定,然后输入make clean,如果出现下面的输出,则表示ok了:
rm -rf libs/rm -rf obj/
接下来,把一些android相关的文件拷贝到之前建好的ios项目下面去。(注意$符号+环境变量名,是你之前定义的目录的别名,即$COCOS2DX_ROOT表示你的cocos2dx的解压缩目录)
第一步,把android这个文件夹从$COCOS2DX_ROOT/Box2DTest/android/拷贝到iphone的工程目录下面去,和ios这个文件夹在同一目录。(最终的目录是Box2DTest/Box2DTest/android/)
第二步,把Android.mk这个文件从$COCOS2DX_ROOT/Box2DTest/Classes/拷贝到Box2DTest/Box2DTest/Classes/下面
第三步,把Android.mk从$COCOS2DX_ROOT/cocos2dx/拷贝到Box2DTest/Box2DTest/libs/cocos2dx/下面
第四步,把android文件夹从$COCOS2DX_ROOT/CocosDenshion拷贝到Box2DTest/Box2DTest/libs/CocosDenshion/下面去。
第五步,把Android.mk从COCOS2DX_ROOT/Box2D/拷贝到Box2DTest/Box2DTest/libs/Box2D/下面去。
最后一步,把platform这个文件夹从$COCOS2DX_ROOT/cocos2dx/platform拷贝到Box2DTest/Box2DTest/libs/cocos2dx/下面去。
当然,这个platform有点大,大约有114M,其中除了android,third_party和ios这三个文件夹不能删除之外,其它文件夹全部可以删除,特别注意!!!!
不要删除那些文件,一个文件也不能删除!!!!
接下来,我们配置一下build_native.sh脚本,把它替换成如下所示:
# set paramsNDK_ROOT=/Volumes/Mydata/android-ndk-r7b/COCOS2DX_ROOT=../libs/cocos2dxGAME_ROOT=../GAME_ANDROID_ROOT=$GAME_ROOT/androidRESOURCE_ROOT=$GAME_ROOT/Resources# make sure assets is existif [ -d $GAME_ANDROID_ROOT/assets ]; then rm -rf $GAME_ANDROID_ROOT/assetsfimkdir $GAME_ANDROID_ROOT/assets# copy resourcesfor file in $RESOURCE_ROOT/*do if [ -d $file ]; then cp -rf $file $GAME_ANDROID_ROOT/assets fi if [ -f $file ]; then cp $file $GAME_ANDROID_ROOT/assets fidone# build$NDK_ROOT/ndk-build -C $GAME_ANDROID_ROOT $*
注意,这里的NDK_ROOT要改成你自己的路径。
然后修改android/jni/Android.mk,修改成下面的样子:
同时把Application.mk修改成下面的样子:
APP_STL := gnustl_staticAPP_CPPFLAGS += -frttiAPP_MODULES := cocos2dx_static cocosdenshion_shared box2d_shared game_logic_static game_static
然后,把android/jni/helloworld/Android.mk修改成下面的样子:
然后把Classes/Android.mk修改成下面的样子:(以后游戏越做越大,则可以在LOCAL_SRC_FILES里面再添加源文件即可)
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := game_logic_staticLOCAL_MODULE_FILENAME := libgame_logicLOCAL_SRC_FILES := AppDelegate.cpp \ HelloWorldScene.cpp LOCAL_C_INCLUDES := $(LOCAL_PATH)/../libs/cocos2dx \ $(LOCAL_PATH)/../libs/cocos2dx/platform \ $(LOCAL_PATH)/../libs/cocos2dx/include \ $(LOCAL_PATH)/../libs/Box2D/ \ LOCAL_STATIC_LIBRARIES := png_static_prebuiltLOCAL_STATIC_LIBRARIES += xml2_static_prebuiltLOCAL_STATIC_LIBRARIES += jpeg_static_prebuiltLOCAL_WHOLE_STATIC_LIBRARIES += cocos2dx_static LOCAL_SHARED_LIBRARIES := cocosdenshion_sharedLOCAL_SHARED_LIBRARIES += box2d_shared include $(BUILD_STATIC_LIBRARY)$(call import-module,cocos2dx/platform/third_party/android/modules/libpng)$(call import-module,cocos2dx/platform/third_party/android/modules/libxml2)$(call import-module,cocos2dx/platform/third_party/android/modules/libjpeg)
然后打开终端,依次输入:
make clean./build_native.sh
如果一切顺利,你将得到如下输出:
Gdbserver : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserverGdbsetup : libs/armeabi/gdb.setupInstall : libcocosdenshion.so => libs/armeabi/libcocosdenshion.soInstall : libbox2d.so => libs/armeabi/libbox2d.soInstall : libgame.so => libs/armeabi/libgame.so
最后,就和上一篇教程中一样了,打开eclipse,导入工程,然后运行就ok啦。下面给出v880的最终运行效果图:
从配置box2d的过程中,我们可以看出,这跟上一篇教程中配置的方法差不多,唯一不同的是一些Android的mk文件的差别。大家可以参考一下ndk的文档,然后结合本实例就可以找出端倪了。下次如果配置ffmpeg或者其它第三方的c/c++库,都可以采用这种方式来配置。
如果有人成功配置了其它第三方库,欢迎留言分享,学雷锋,做好事:)
要论坛交流,请点击传送门。
参考资料:http://gameit.ro/2011/08/creating-a-cocos2d-x-box2d-android-project/
- mac下面xcode+ndk7配置cocos2dx & box2d的跨ios和android平台的游戏教程
- cocos2dx含有Box2d编译到android平台和ios平台上
- Mac下配置Cocos2dx,Android和xcode环境
- 如何在macox下面配置集成ios和android游戏教程
- 如何在macox下面配置集成ios和android游戏教程
- 如何在macox下面配置集成ios和android游戏教程
- 如何在macox下面配置集成ios和android游戏教程
- 如何在macox下面配置集成ios和android游戏教程
- 史上最清晰快速的mac下搭建cocos2dx跨ios/android环境教程
- cocos2dx android和iOS平台的崩溃捕获和收集
- cocos2dx 在mac下开发ios和android游戏
- 关于cocos2dx游戏的Android和IOS编译问题
- mac下面配置android sdk的环境变量
- cocos2dx ios android 添加 box2d
- cocos2dx ios android 添加 box2d
- 【COCOS2DX-BOX2D游戏开发之二】 Box2d教程链接
- Cocos2dx--Cocos2dx与Android平台的跨平台调用
- MAC平台下Xcode配置使用OpenCV的具体方法
- (译)cocos2d-x跨android&ios平台开发入门教程
- 来去电悬浮窗口提示事件记录(根据号码找到相关事情)
- 数据库分表
- 微信收费事件背后被广泛忽略的技术细节
- 神经元的群体共振效应是否就是情感活动呢?
- mac下面xcode+ndk7配置cocos2dx & box2d的跨ios和android平台的游戏教程
- 数组-去掉重复内容
- git命令之git fetch 用法 2
- MyEclipse + Maven开发Web工程的详细配置过程
- Android eclipse内存管理工具 内存泄露定位
- VS2010中GetMenu()和GetSubMenu(0)为NULL引发异常的解决方法
- Java 对象锁
- ruby on rails + mysql 开发环境搭建
- 八字与卜卦的差别