• 3、Cocos2dx 3.0游戏开发找小三之搭建开发环境


    尊重开发人员的劳动成果。转载的时候请务必注明出处http://blog.csdn.net/haomengzhu/article/details/27107295


    搭建开发环境

    使用 Cocos2d-x 的一个非常大便利之处在于,我们能够在 PC 或 Mac 环境下完毕编码和大部分的调试,然后再迁移到其它设备
    上做实际环境測试。这意味着我们能够在 PC 上开发游戏。然后以极其低廉的成本把游戏迁移到 iOS 或其它平台上,从而节

    省了开发阶段支付在设备方面的很多费用。


    前面提到,Cocos2d-x 能够部署在多种平台上,详细的运行步骤并不复杂


    如今。我们遵循以下的步骤在 PC 上搭建开发环境。

    1、正确安装 Visual Studio 2010(后简称 VS)。

    2、从官方站点的下载页面下载最新的 Cocos2d-x 源代码并解压。这里我们使用的是 cocos2d-x 3.0版本号。

    下载cocos2d-x 3.0正式版
          http://www.cocos2d-x.org/download

    3、下载android的sdk以及ndk

         http://developer.android.com/sdk/index.html

    4、下载ant
         http://ant.apache.org

    (注:cocos2d-x的环境变量配置须要用到ant,主要是android须要使用到它)

    5、下载python 2.7.6(不要下载python3.0以上的版本号)
    https://www.python.org/download/releases/2.7.6/
    必备工具都下载好了,如今開始搭建好开发环境了。

    6、如今開始配置3.0的环境变量,这个方便了非常多
    仅仅须要执行3.0的文件夹下setup.py就好了



    依据提示运行。输入相关路径。


    7、创建项目。相信使用过3.0的大侠们都知道有个cocos的命令。


    这里运行下   cocos -h 看下帮助





    完毕开发环境的搭建后,以下我们就来创建第一个 Cocos2d-x 项目。取名为“findmistress”即找小三:




    8、找到创建的文件夹:

    创建project后。使用VS2012打开win32项目。然后执行编译就可以;

    在 VS 的"解决方式资源管理器"中可以看到一个典型的 Cocos2d-x project的文件目录结构,当中"Classes"目录中存放游戏代码,"resource"目录中存放游戏资源, 其它project是存放 Cocos2d-x引擎与其它依赖项目的源代码。

    通常情况下。Cocos2d-x 的project已经包括了必要的外部依赖库,因此我们仅仅须要改动游戏代码与资源。


    不做其它不论什么改动,直接执行项目。第一次编译可能会须要较长时间。等待编译完毕后,启动调试。

    假设下图所看到的的Cocos2d-x 标志,那么恭喜你,你的环境搭建成功,你的第一个 Cocos2d-x 游戏执行成功了:



    就这样整个环境就这样搭建完毕了。


    9、接下来要说的还是android的相关部分了。

    首先。进入到proj.android文件夹下通过命令运行



    编译完毕后打开,使用eclipse打开。并导入能够看到有红色的“*”.




    这里是由于少了包,右击属性能够看到



    到E:cocos2d-x-3.0projectsfindmistresscocos2dcocos2dplatformandroidjavasrc下把类包拷到当前项目的src下就可以。或者通过类库项目的方式进行引用。

    刷新之后就没有问题了:



    只是问题来了。每次这么创建都要去copy实在是太麻烦了。


    改动模板类中的build_native.py
      你能够在“cocos2d-x-3.0/templates/cpp-template-default/proj.android”下找到build_native.py进行改动。
    接下来改动一下模板中的build_native.py文件。以后就让命令来帮我们一起将类包考进去。

    <span style="font-family:KaiTi_GB2312;">def copy_resources(app_android_root):
    
        # remove app_android_root/assets if it exists
        assets_dir = os.path.join(app_android_root, "assets")
        if os.path.isdir(assets_dir):
            shutil.rmtree(assets_dir)
    
        # copy resources
        os.mkdir(assets_dir)
        resources_dir = os.path.join(app_android_root, "../Resources")
        if os.path.isdir(resources_dir):
            copy_files(resources_dir, assets_dir)
    
    #--------copy cocos_lib_path start------------
    def copy_src_files(src, dst):
        
        for item in os.listdir(src):
            path = os.path.join(src, item)
            
            if not item.startswith('.') and os.path.isfile(path):
                shutil.copy(path, dst)
            if os.path.isdir(path):
                new_dst = os.path.join(dst, item)
                if not os.path.exists(new_dst):
                    os.mkdir(new_dst)
                copy_src_files(path, new_dst)
    def copy_src(app_android_root,cocos_root):
      
        android_src_dir = os.path.join(app_android_root,"src")
        
        cocos_src_path = os.path.join(cocos_root, "cocos/2d/platform/android/java/src")
        
        if not os.path.exists(android_src_dir) :
            os.mkdir(android_src_dir)
        
        if os.path.isdir(cocos_src_path):
            copy_src_files(cocos_src_path,android_src_dir)
    #--------copy cocos_lib_path end------------
    
    def build(ndk_build_param,android_platform,build_mode):
    
        ndk_root = check_environment_variables()
        sdk_root = None
        select_toolchain_version()
    
        current_dir = os.path.dirname(os.path.realpath(__file__))
        cocos_root = os.path.join(current_dir, "../cocos2d")
    
        app_android_root = current_dir
        copy_resources(app_android_root)
        
        #-----------------add copy src ------------
        copy_src(app_android_root,cocos_root)
        
        if android_platform is not None:
    				sdk_root = check_environment_variables_sdk()
    				if android_platform.isdigit():
    						android_platform = 'android-'+android_platform
    				else:
    						print 'please use vaild android platform'
    						exit(1)
    		
        if build_mode is None:
        	  build_mode = 'debug'
        elif build_mode != 'release':
            build_mode = 'debug'
        
        do_build(cocos_root, ndk_root, app_android_root,ndk_build_param,sdk_root,android_platform,build_mode)</span>


    好了,改动模板的优点就是一次改动,多次使用哈。
    以下你能够在创建一个项目,然后运行   python build_native.py  看看是不是把类包一起打包进项目了哈。

    以上就是整个的环境搭建过程,看起来有点儿多,只是最好另一个东西也是要放到模板下的。



    那就是为了方便以后copy 创建的cpp文件到android.mk下,往模板的proj.android下的JNI下加入list.sh文件。
    下载包:  list.sh.zip 
    用法非常easy:

    <span style="font-family:KaiTi_GB2312;">./list.sh ../../Classes</span>

    这样就能够列出Classes下的cpp了。这样就能够直接copy到android.mk文件夹下了。

    哈,好了,完毕了整个的创建过程了。是不是感觉非常爽、、、

  • 相关阅读:
    What is the difference between google tag manager and google analytics?
    GetService<IMessageBoxService>() returned null.
    Using Google Consent Mode to Adjust Tag Behavior Based on Consent
    what are the values in _ga cookie?
    DEP019 System table or view is deprecated
    How to set the Google Analytics cookie only after another consent cookie is set and "true"?
    Tag Manager and gtag.js
    Using the OptanonWrapper Callback Function
    elk7.15.1版本收集nginx日志并用kibana图形化分析日志
    ELK分析Nginx日志和可视化展示
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/6741813.html
Copyright © 2020-2023  润新知