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:\cocos2dx\cocos2d-x-3.17.2\tools\cocos2d-console\bin\cocos 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!表示。

参考文档

Cocos2d-x学习小结 配置篇的更多相关文章

  1. Cocos2d-x学习小结 开始篇

    Cocos2d-x学习小结 开始篇 想要学习Cocos2d-x,是因为在高中物理课上找不到某些物理定律的证明,例如欧姆定律. 为此,我翻阅了稍高等级的物理教材,其中关于欧姆定律\(R=\frac{U} ...

  2. Hadoop学习17--yarn配置篇-内存管理

    这篇文章来自于:董的博客,记录备查 内存管理,主要是管理nodemanager上的物理内存和虚拟内存. YARN允许用户配置每个节点上可用的物理内存资源,注意,这里是“可用的”,因为一个节点上的内存会 ...

  3. kubernetes源码学习-环境配置篇

    下载源码 根据kubernetes github 方式可以 mkdir -p $GOPATH/src/k8s.io cd $GOPATH/src/k8s.io git clone https://gi ...

  4. struts2学习:配置篇之namespace

    把namespace单独拉出来讲一方面是因为它实际上不是一个element,而只是一个attribute,前面已经说了,它是package的一个attribute:另外一方面是因为这个属性是我接触St ...

  5. Hadoop学习18--yarn配置篇-基本配置节点

    <configuration> <property> <name>yarn.nodemanager.aux-services</name> <va ...

  6. Django学习之配置篇

    MTV Model Template View 数据库 模版文件 业务处理 了解Django框架,功能齐全 一.安装Django&Django基本配置 安装Django pip3 django ...

  7. 《TP5.0学习笔记---配置篇》

    参考博客:http://blog.csdn.net/self_realian/article/details/75045541

  8. Lex与Yacc学习(一)之环境配置篇

    Abstract 在开发程序的过程中经常会遇到文本解析的问题,例如:解析 C 语言源程序,编写 脚本引擎等等,解决这种文本解析的方法有很多,一种方法就是自己手动用 C 或者 C++直接编写解析程序,这 ...

  9. flex学习小结

    接触到flex一个多月了,今天做一个学习小结.如果有知识错误或者意见不同的地方.欢迎交流指教. 画外音:先说一下,我是怎么接触到flex布局的.对于正在学习的童鞋们,我建议大家没事可以逛逛网站,看看人 ...

随机推荐

  1. 010 SpringCloud 学习笔记6-----Feign

    1.概述 Feign可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样.你不用再自己拼接url,拼接参数等等操作,一切都交给Feign去做. 2.入门案例 改造luc ...

  2. CentOS 使用 prename修改文件名大小写的方法

    1. CentOS和ubuntu的rename的命令是不一样的. CentOS的rename 使用的是c语言版本的 而ubuntu的rename使用的是 perl的版本,意味着很多ubuntu上面的扩 ...

  3. LInux因为缺失网关出现Name or service not known的解决方法

    笔者使用的VMware和CentOS 7.0.在安装完镜像包后,便开始配置静态ip.命令如下 vi /etc/sysconfig/network-scripts/ifcfg-ens33 将BOOTPR ...

  4. 用Scratch制作一个Hello World程序

    网上出现了很多Hello World程序,看的小编心里也痒痒的,为此这次作为南京小码王Scratch培训机构的小编,就为大家来详细的了解下Scratch制作Hello World程序的过程,现在就和小 ...

  5. Forbidden (CSRF token missing or incorrect.):

    CSRF令牌失效或丢失,Ajax请求页面报错(403 Forbidden ) csrftoken存在 页面响应为CSRF验证失败请求被中断,经过测试,该错误并非是没有在表单中加入{% csrf_tok ...

  6. Linux系统 关机/重启/用户切换/注销,用户管理(用户创建/修改,用户组增加/删除),Linux中 / 和 ~ 的区别

    1.关机/重启命令 shutdown命令 shutdown -h now :立即关机 shutdown -h 1 :1分钟后关机 shutdown -r now :立即重启 shutdown -r 1 ...

  7. Java的访问修饰符的作用范围

    访问修饰符: private default protected public 作用范围: 访问修饰符\作用范围 所在类 同一包内其他类 其他包内子类 其他包内非子类 private 可以访问 不可以 ...

  8. [开源]Gin + GORM + Casbin+vue-element-admin 实现权限管理系统(golang)

    简析 基于 Gin + GORM + Casbin + vue-element-admin 实现的权限管理系统. 基于Casbin 实现RBAC权限管理. 前端实现: vue-element-admi ...

  9. NFS实现多服务器文件共享

    服务器 1.安装所需的软件包 yum install -y rpc-bind nfs-utils 2.设为开机自启动 systemctl enable nfs systemctl enable rpc ...

  10. HTTP响应状态

    状态码分类 状态码详解 状态码 英文提示 说明 100 Continue 继续 101 Switching Protocols 切换协议.服务器根据客户端的请求切换协议.只能切换到更高级的协议,例如, ...