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:\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学习小结 配置篇的更多相关文章
- Cocos2d-x学习小结 开始篇
Cocos2d-x学习小结 开始篇 想要学习Cocos2d-x,是因为在高中物理课上找不到某些物理定律的证明,例如欧姆定律. 为此,我翻阅了稍高等级的物理教材,其中关于欧姆定律\(R=\frac{U} ...
- Hadoop学习17--yarn配置篇-内存管理
这篇文章来自于:董的博客,记录备查 内存管理,主要是管理nodemanager上的物理内存和虚拟内存. YARN允许用户配置每个节点上可用的物理内存资源,注意,这里是“可用的”,因为一个节点上的内存会 ...
- kubernetes源码学习-环境配置篇
下载源码 根据kubernetes github 方式可以 mkdir -p $GOPATH/src/k8s.io cd $GOPATH/src/k8s.io git clone https://gi ...
- struts2学习:配置篇之namespace
把namespace单独拉出来讲一方面是因为它实际上不是一个element,而只是一个attribute,前面已经说了,它是package的一个attribute:另外一方面是因为这个属性是我接触St ...
- Hadoop学习18--yarn配置篇-基本配置节点
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <va ...
- Django学习之配置篇
MTV Model Template View 数据库 模版文件 业务处理 了解Django框架,功能齐全 一.安装Django&Django基本配置 安装Django pip3 django ...
- 《TP5.0学习笔记---配置篇》
参考博客:http://blog.csdn.net/self_realian/article/details/75045541
- Lex与Yacc学习(一)之环境配置篇
Abstract 在开发程序的过程中经常会遇到文本解析的问题,例如:解析 C 语言源程序,编写 脚本引擎等等,解决这种文本解析的方法有很多,一种方法就是自己手动用 C 或者 C++直接编写解析程序,这 ...
- flex学习小结
接触到flex一个多月了,今天做一个学习小结.如果有知识错误或者意见不同的地方.欢迎交流指教. 画外音:先说一下,我是怎么接触到flex布局的.对于正在学习的童鞋们,我建议大家没事可以逛逛网站,看看人 ...
随机推荐
- CentOS7-Docker容器入门
Docker由三大部分组成 基础镜像---->中间件---->最后生成应用镜像一个镜像可以给多个进程使用! Docker是什么 Docker是一个改进的容器技术.具体的“改进”体现在,Do ...
- Node.js 开发指南-读书笔记
1. Node.js 使用了单 线程.非阻塞的事件编程模式 Node.js 最大的特点就是采用异步式 I/O 与事件驱动的架构设计.对于高并发的解决方 案,传统的架构是多线程模型,也就是为每个业务逻辑 ...
- C++ 每日一题 参数分析 (vector)
首先给出原题地址: https://www.nowcoder.com/practice/668603dc307e4ef4bb07bcd0615ea677?tpId 以下是代码解析: #include& ...
- git 学习笔记 --创建与合并分支
在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支.HEAD严格来说不是指向提交,而 ...
- 记录个超级Update语句
-- UPDATE UPDATE affair_list SET deleteState = WHERE gid IN ( SELECT tt.gid FROM ( SELECT a.gid FROM ...
- Asp.net MVC 之ActionResult
ActionResult 派生出以下子类: ViewResult 返回一个网页视图 PartialViewResult 返回一个网页视图,但不适用布局页. ContentResult 返回一段字符串文 ...
- Python进阶----异常处理
Python进阶----异常处理 一丶错误和异常 错误: 语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) #语法错误示范一 if #语法错误示范二 ...
- 2019-07-25 PDO
PDO是什么? pdo是php数据对象,即php data object .使用pdo是为了让我们能够使用相同的代码连接不同的数据库.PDO扩展是以面向对象的方式来进行封装,也就是说,我们的PDO扩展 ...
- Selenium浏览器自动化测试工具
目录 Selenium浏览器自动化测试工具 Selenium模块在爬虫中的使用 Python简单使用Selenium Selenium的基本操作 Selenium爬取动态加载的数据 Selenium动 ...
- 约束布局ConstraintLayout
Android新特性介绍,ConstraintLayout完全解析 约束布局ConstraintLayout用法全解析 约束布局ConstraintLayout看这一篇就够了