zoukankan      html  css  js  c++  java
  • Cocos2d-x学习小结 配置篇

    Cocos2d-x学习小结 配置篇

    学习工具:Cocos2d-x用户手册《Cocos2d-x游戏开发之旅》

    首先官网下载cocos2d-x源码,安装vs2019。如果没有安装python2,官网下载安装python2.7.(开发工具都装完后需要重启。注销是没有用的。)

    解压cocos2d-x文件夹,运行setup.py(配置cocos2d-x的环境变量)

    用cocos命令cocos2d-x新建工程。cocos命令的执行文件目录为./tools/cocos2d-console/bin/cocos,命令用法是cocos new %ProjectName% -l cpp -d D:cocosProjects。为了让创建工程更简单,可以自己编一个创建工程的bat脚本。

    @echo off
    
    set /p ProjectName=请输入工程名
    
    D:cocos2dxcocos2d-x-3.17.2	oolscocos2d-consoleincocos new %ProjectName% -l cpp -d D:cocosProjects
    

    几十秒的等待后,可以在D:cocosProjects中找到自己的工程文件夹。大致长这样:

    MycocosProject
    |- cocos2d		······cocos2d引擎文件
    |- classes		······本项目用到的类
    |- Resources	······本项目用到的资源文件
    |- proj.linux	······linux下的项目文件
    |- proj.win32	······win32下的项目文件
    |- proj.android	······Android下的项目文件
    |- proj.ios_mac	······ios和mac下的项目文件
    

    删除暂时不需要的最后两项,打开MycocosProject/proj.win32中的MycocosProject.sln。

    这个时候visual studio会提示你需要重定向项目(cocos2d-x的开发团队使用vs2015,我们用的是vs2019。由于新建项目的所有资源都来自于开发团队,它本身就是一个vs2015项目。为了用vs2019编辑,需要把我们创建的项目提升到vs2019版本)

    之后就可以编译项目了。几分钟过后就是一个cocos2d-x的HelloWorld程序。这样我们就成功跑起来了第一个cocos2d-x程序啦!

    但是,有一个(对于ssd用户来说)致命的问题,那就是开发cocos2d-x的默认方式是一个项目一个文件夹,文件夹里包括所有cocos2d-x的库文件。这就导致一个cocos2d-x项目占用差不多2Gb的硬盘空间(win7实测)!而事实上,我们可以把多个项目综合到一个大项目(也就是vs中的解决方案)中,让多个项目共用一套cocos2d-x的库,这样就可以大大节约硬盘空间。无论你创建多少个项目,硬盘空间大小也不会2Gb2Gb的增加。

    具体的操作方式,就是再创建一个cocos2d-x项目,只保留classes,Resources,proj.win32三个文件夹,然后将它放到MycocosProject文件夹中。

    接着,进入新创建项目的proj.win32目录,用文本编辑器打开其中的xxx.vcxproj。将文件里所有的"..cocos2d"替换成"....cocos2d"。

    在这之后打开原项目MycocosProject,在解决方案上单击右键,选择【添加】-【现有项目】,选择xxx.sln,导入新的项目。

    在导入项目之后,一样需要把项目重定向。右键重定向项目即可。

    现在我们就成功的把新项目导入到了原来的那个大解决方案里。但是注意,以后我们打开新项目时就不能用原来的sln文件打开了。需要用大工程MycocosProject的sln文件打开,否则会提示cocos的库都被卸载了。

    如果你有强迫症(像我一样),可以删除大工程MycocosProject中的classes和Resources文件夹,这样MycocosProject工程就成了其他工程的纯启动器。

    在这之后,如果再要创建新的工程,直接复制粘贴xxx工程的文件夹,并把文件夹中所有含有xxx名字的文件都改成含有新项目名字的文件就可以了。

    【补充概念】sln文件:在开发环境中使用的解决方案文件,是一个或多个项目(proj)的集合。它将一个或多个项目的所有元素组织到单个的解决方案中。此文件存储在父项目目录中。

    附:新建工程批处理文件(新工程模板文件夹为_HelloWorld)

    @echo off
    
    setlocal enabledelayedexpansion
    
    set /p ProjectName=请输入工程名
    
    xcopy /y _HelloWorld %ProjectName% /s /e /I
    
    for /r %ProjectName% %%i in (*_HelloWorld*) do (
    
    	set oldpath=%%~fi
    
    	set newpath=!oldpath:_HelloWorld=%Projectname%!
    
    	echo !oldpath!
    
    	echo !newpath!
    
    	mv !oldpath! !newpath!
    
    )
    
    pause
    

    用setlocal enabledelayexpansion来让批处理器处理脚本时把复合语句分开执行,避免bat文件中对单个语句先全部计算再赋值的情况。

    开启delayexpansion之后,变量不能再用%val%表示,而要用!val!表示。

    参考文档

  • 相关阅读:
    命名是个技术活(转)
    我想知道的是这个月哪种商品销售量最高,比上个月怎么样?销量近几个月的走势是什么?有没有未达标的?有没有超额完成的?超额完成了多少?我可不关心这个月到底售出了多少件,几点售出的,谁买的(转)
    一个demo
    oracle 创建字段自增长——两种实现方式汇总(转)
    Ruby 一些经常使用的细节
    CMap与hash_map效率对照
    Unity 4.5.2 for Mac 下载+安装+破解
    Android中View绘制流程以及invalidate()等相关方法分析
    Android Studio 100 tips and tricks
    JavaScript-2.2 document.write 输出到页面的内容
  • 原文地址:https://www.cnblogs.com/MyNameIsPc/p/11204823.html
Copyright © 2011-2022 走看看