`
liuqf
  • 浏览: 10337 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论

转 mac下面xcode+ndk7配置cocos2dx & box2d的跨ios和android平台的游戏教程

 
阅读更多

原文地址: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 params
NDK_ROOT=/Volumes/Mydata/android-ndk-r7b/
COCOS2DX_ROOT=../libs/cocos2dx
GAME_ROOT=../
GAME_ANDROID_ROOT=$GAME_ROOT/android
RESOURCE_ROOT=$GAME_ROOT/Resources

# make sure assets is exist
if [ -d $GAME_ANDROID_ROOT/assets ]; then
    rm -rf $GAME_ANDROID_ROOT/assets
fi

mkdir $GAME_ANDROID_ROOT/assets

# copy resources
for 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
    fi
done

# build
$NDK_ROOT/ndk-build -C $GAME_ANDROID_ROOT $*
复制代码

注意,这里的NDK_ROOT要改成你自己的路径。

 

然后修改android/jni/Android.mk,修改成下面的样子:

 

同时把Application.mk修改成下面的样子:

APP_STL := gnustl_static
APP_CPPFLAGS += -frtti
APP_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_static

LOCAL_MODULE_FILENAME := libgame_logic

LOCAL_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_prebuilt
LOCAL_STATIC_LIBRARIES += xml2_static_prebuilt
LOCAL_STATIC_LIBRARIES += jpeg_static_prebuilt
LOCAL_WHOLE_STATIC_LIBRARIES += cocos2dx_static
                
LOCAL_SHARED_LIBRARIES := cocosdenshion_shared
LOCAL_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/gdbserver
Gdbsetup       : libs/armeabi/gdb.setup
Install        : libcocosdenshion.so => libs/armeabi/libcocosdenshion.so
Install        : libbox2d.so => libs/armeabi/libbox2d.so
Install        : libgame.so => libs/armeabi/libgame.so
分享到:
评论

相关推荐

    基于Cocos2dx + box2d 实现的愤怒的小鸟Demo

    通过以上知识点的学习和实践,你不仅可以理解“愤怒的小鸟”Demo的实现原理,还能掌握使用Cocos2dx和Box2d开发2D物理游戏的基本流程和技术要点。这个Demo是一个很好的起点,通过它你可以进一步扩展自己的游戏开发...

    cocos2d-x手机游戏开发 跨iOS、Android和沃Phone平台

    ### cocos2d-x手机游戏开发跨iOS、Android和沃Phone平台 #### 一、Cocos2d-x简介 Cocos2d-x 是一个开源的移动游戏开发框架,它支持多种编程语言,包括 C++、JavaScript 和 Lua。由于其强大的功能和良好的跨平台...

    cocos2d(android,ios)

    总结,cocos2d作为一款强大的2D游戏开发框架,在Android和iOS平台上的应用广泛且深入。它为开发者提供了丰富的功能,简化了游戏开发流程,使得开发者可以专注于游戏的创意和玩法设计,而无需过多关注底层实现。无论...

    COCOS2D-X手机游戏开发++跨IOS、ANDROID和沃PHONE平台

    COCOS2D-X是一个强大且灵活的2D游戏开发框架,适用于iOS、Android和沃PHONE等多个平台。通过学习和掌握COCOS2D-X,开发者可以高效地创建跨平台游戏,节省时间和资源,同时保证游戏在不同设备上的性能和用户体验。...

    Cocos2dx游戏-植物大战僵尸-Ios-Xcode平台,

    《Cocos2dx游戏开发:基于“植物大战僵尸”在iOS平台上使用Xcode》 Cocos2dx是一款开源的游戏开发框架,它基于C++,同时提供了Lua和JavaScript的绑定,使得开发者可以方便地进行跨平台游戏开发。在这个项目中,我们...

    cocos2d-lua整合到ios工程

    Cocos2d-x是一个强大的跨平台2D游戏开发框架,而Lua是一种轻量级的脚本语言,易于学习且适合游戏逻辑编写。本文将详细介绍如何将Cocos2d-x Lua项目整合到iOS工程中,以便在iOS应用中运行Cocos2d-x的lua脚本,实现...

    Xcode工具开发的Cocos2dx 游戏打包成Android apk

    在游戏开发领域,Cocos2dx是一款非常流行的跨平台游戏引擎,它支持开发者使用C++进行开发,并能够将游戏发布到多个平台,包括iOS、Android等。本文将详细介绍如何使用Xcode工具开发的Cocos2dx游戏项目打包成Android ...

    cocos2dx教程

    cocos2dx是一款广泛应用于手机2D游戏开发的开源游戏引擎,以其强大的功能和跨平台支持而备受开发者喜爱。初学者可以通过学习cocos2dx来快速掌握游戏开发的基础知识和技能。 ### 创建新的cocos2d-x项目 1. **在Win...

    Cocos2d-x环境搭建及平台移植(Win32\Android\Ios)

    Cocos2d-x是一个跨平台的游戏引擎,可以在Windows、Android、iOS等平台上运行。下面是关于Cocos2d-x环境搭建及平台移植的详细知识点: 一、搭建Windows开发环境 1. 安装Visual Studio 2010(VS2010) 2. 安装...

    cocos2dx 超级玛丽 demo 源码

    1. **跨平台性**:cocos2dx支持Windows、Linux、Mac OS、iOS、Android等多平台,使开发者能够一次编写,到处运行。 2. **2D渲染**:cocos2dx提供强大的2D图形渲染能力,可以方便地创建复杂的动画效果。 3. **物理...

    iOS Game Programming with Xcode and Cocos2d(完整版)

    《iOS游戏编程:使用Xcode和Cocos2d》是一本深入探讨如何在苹果iOS平台上开发游戏的权威指南。本书全面介绍了使用Xcode集成开发环境和Cocos2d游戏引擎来构建高性能、交互性强的游戏应用的全过程。Cocos2d是一款广泛...

    cocos2dx小游戏demo,用于iOS初学入门制作游戏

    Cocos2d-x是一款跨平台的2D游戏开发框架,被广泛应用于iOS、Android以及其他操作系统的游戏开发。这个压缩包中的"Cocos2dx小游戏demo"是一个专门为iOS初学者设计的入门项目,旨在帮助开发者快速理解并掌握如何使用...

    cocos2dx 运动轨迹特效源码

    这个项目可能是基于xcode构建的,这表明它主要针对iOS平台,但同时,由于cocos2dx的跨平台性,开发者也可以根据需要添加Android或Win32平台的支持。 在cocos2dx中实现运动轨迹特效,通常会用到以下几个关键组件和...

    cocos2d-x+lua游戏demo源码

    cocos2d-x是一个跨平台的2D游戏开发框架,广泛应用于移动设备,如iOS和Android。lua是一种轻量级的、面向过程的编程语言,因其简洁和高效而被许多游戏开发者用作脚本语言,特别是在游戏逻辑和界面交互中。 在cocos...

    xcode cocos2d工具包

    总结,Xcode与Cocos2d的集成为iOS游戏开发提供了强大的工具链,通过熟悉和掌握这些知识点,开发者可以更高效地创建出引人入胜的2D游戏作品。无论是初学者还是经验丰富的开发者,都应该充分利用这些资源,提升自己的...

    cocos2d iOS框架

    Cocos2d是一款广泛使用的开源游戏开发框架,尤其在iOS平台上深受开发者喜爱。它提供了丰富的功能和工具,使得游戏开发过程更加高效和便捷。本文将深入探讨Cocos2d iOS框架的核心概念、主要特点以及如何利用它来创建...

    cocos2dx使用ios内支付详细流程iap

    Cocos2d-x是一个广泛使用的跨平台游戏开发框架,支持在iOS上集成IAP功能。本文将详细阐述如何在Cocos2d-x项目中实现iOS内支付iap的详细流程,主要分为以下几个步骤: 1. **配置App Store Connect**: 在开发IAP...

    黄金矿工—Cocos2dx游戏代码(自己开发)IOS-Xcode平台

    《黄金矿工—Cocos2dx游戏代码(自己开发)IOS-Xcode平台》是一个由个人开发者制作的游戏项目,旨在帮助初学者了解和学习Cocos2dx框架在iOS平台上的应用,特别是通过Xcode进行游戏开发的过程。Cocos2dx是一个跨平台...

    cocos2dx 环境搭建和平台移植

    总结来说,Cocos2d-x的环境搭建和平台移植涉及多个步骤,包括安装依赖、配置环境、创建项目和设置编译选项。理解这些步骤并熟练操作,能帮助开发者高效地进行游戏开发,实现跨平台的无缝迁移。无论是Windows、...

    iOS cocos2d游戏开发教程

    ### iOS Cocos2d游戏开发教程:从入门到精通 #### 引言 在苹果的iTunes App Store以及伴随而来的移动设备(如iPhone、iPod touch和iPad)的推动下,开发并销售自己的计算机游戏变得前所未有的容易。尽管这并不意味...

Global site tag (gtag.js) - Google Analytics