接触Cocos2d-x


最近由于公司项目的需要,自己开始接触Cocos,开始做一些简单的轻量级的游戏,以前没有接触过这一块的东西,也是借助这个机会学习一下游戏的开发,由于以前自己接触的全都是iOS和Android移动端App的开发,所以这整个Cocos的学习总结的文章会在真个过程中贯穿对比自己相对熟悉的iOS和Android对比学习,要是也有和我自己情况类似的朋友,接下来总结的这整个Cocos系列的文章也许可以帮助到你,有不足的地方也希望指正,我们一同进步。

刚开始的时候,由于以前的游戏是用C++开发,自己就去慢慢的开始学习用Cocos2d-x C++简单的了解项目。自己看了最基本的一些Cocos的东西之后,说以后的游戏用JS做,然后又开始学习JS,最后决定用Lua开发,可能这就是人生.....其实上面说的意思就是想总结一些开发游戏的时候我们可以有的选择,开发语言就有 C++,JavaScript , Lua 三个选择,它们和你真正利用它们做游戏就像你懂OC、Swift。懂Java之后去做iOS或者Android之间的距离,这个可以仔细的想一想,懂这些语言和开发实际项目之间距离是什么,然后也就明白懂这些语言和实际的游戏项目开发之间欠缺的就是Cocos2d-x的东西,要认清了这些也就了解了“游戏怎么做”这个基本的问题吧!

说说Cocos


Cocos是一个大概念,等我们具体的开发中使用到的是Cocos2d-x模块的东西,看看这个Cocos 产品的一个架构:

1: Cocos Creator 这是一个为我们开发游戏做的IDE,具体的可以看这个 Cocos Creator v1.5.x 用户手册

2: Framework 这个就是开发的核心Cocos2d-x,其实按照我自己的理解,和iOS中我们常说的框架是类似的,比如你处理一些基本数据你就需要Foundation框架,处理UI的东西需要UIKit框架一样,这个Cocos2d-x就是我们开发游戏是需要的“框架”。

3: SDK 这一部分的AnySDK是为CP商提供一套第三方SDK接入解决方案,包括我们常用的像支付、分享、统计分析等等。具体的也可以看看 SDK文档,可能有些人还知道棱镜SDK、anysdk、易接(1SDk),关于这几个有什么区别,甚至在什么时候用哪个等等的额问题,下面这篇文章可能能说明问题:

如何评价棱镜SDK、anysdk、易接(1SDk),他们都有什么差别

4、

通过上面的分析和阐述能明白 Cocos 是什么 这个问题就可以了。

说说Cocos开发语言


前面Framework提到过游戏开发的语言,就是C++ 、JavaScript 、Lua这三种,按照我自己的一点点小小的理解,要说什么语言比较好一点这种问题也不够资格回答,在知乎上看到过这样的问题,有兴趣的可以去看看,也许里面一些回答能让你有自己的理解:

最适合游戏开发的语言是什么?

相信每一个程序猿对C/C++是有一定的掌握的,按照自己学习JS和Lua的过程,它们的学习难度都不大,完全可以通过对C掌握来相对容易的拿下它们。所以千万不要为你要学习一门新的开发语言而担心或者害怕,哪有程序猿不需要学习新东西更新自己的知识库的!当然这点难度的是也难不倒伟大的程序猿。

接下来说说Lua,Lua是一个脚本语言,具体的Lua语法什么的我们就不提了,在后面具体说到Lua的时候再说,知道了Cocos2d-Lua你还需要知道这个: Quick-Coco2d-x

下面这段话是在泰然网(也就是Quick-Coco2d-x官网)的教程里面说的,具体的告诉我们,什么是 Quick-Coco2d-x

首先,想了解 Quick-Coco2d-x 就必须先知道 Cocos2d-x 是什么,不过我想关于 Cocos2d-x 的介绍这里就不用我来废话了吧,毕竟这么牛的游戏引擎还是应该很点名气的吧!

其次,由于 Cocos2d-x 中使用的是 C++ 语言,而 C++ 又对开发人员要求较高,所以逐渐地,开发者们开始将 Cocos2d-x 的 C++ 接口转成了 Lua 接口,从而衍生出了 Cocos2d-lua 的版本。而 Quick(Quick-Coco2d-x)是 Cocos2d-Lua 的一个豪华增强和扩展版本,它重写了支持代码、解决了内存泄露和只能使用全局函数做回调等等问题。Quick 能让开发者使用 Lua 这种简单易懂的脚本语言来编写游戏,并大大提高了开发效率。现在Quick 团队也已接手了 Cocos2d-lua 的开发和维护工作,所以未来 Quick 和 Cocos2d-lua 将有望完全合并起来。

我想通过上面两段话也就理解了Quick-Coco2d-x 和 Cocos2d-lua的关系!而下面的开发环境的搭建我们也就这两个方面说说,用Quick-Coco2d-lua 和Cocos2d-lua进行一个对比,也就能知道怎样的开发环境对于开发人员是最友好的。

在Mac上开发游戏环境选择搭建


首先通过环境的搭建和各种对比之后在这抛出一个见解: 目前自己觉得比较友好的方式是 Quick-Coco2d-x + Sublime Text 3(2/3都可以)

Sublime Text 3 你可以直接去官网下载    具体的 Quick-Coco2d-x 你可以看看这个:Quick社区版第一个稳定版,Quick-Cocos2dx-Community 3.6 release发布

它详细的介绍了Mac版本的客户端Paly3安装方式,下面就是一个Paly3运行起来的样子:

接下来这个Paly3 我们就不再说了,新建项目/导入项目  或者打开已有的项目等等的相信都能理解。要是安装中出现一些问题,希望都可以自己动手上网解决了,当然也可以加我QQ多多交流。

Mac 搭建游戏开发环境还有一些方式,比如:还有利用 Cocos Studio 2 的,这个具体的可以看它的官网:  Cocos 官网

看看官网的下载,相信创建一个基本的Demo这种事也难不住你。

直接运行你创建在项目,也就可以看到Demo啦。

再给大家分享个链接: Quick-Cocos2d-x教程汇总

后面文章做的事


其实这篇文章起笔真的也是许久之前的事情了,自己接触Cocos也就两个多月,感觉也度过了最艰难的入门时期,最近也真的是太忙,没有时间留给自己总结这两个多月的东西了,没错,国庆加班到现在,真的是累!

不传播负能量啦,说说后面的,其实很想仔细的把iOS内存管理,Block以及多线程的东西也好好的总结一下的,最近给游戏里面负责添加了苹果原生支付,所以Lua和iOS的交互以及苹果内购方面的东西也值得好好总结一下啦。

接下来应该会先总结Lua和iOS交互以及支付的事,毕竟也要给客户写文档,到时顺便把这些一起做了。

猿猿们,1024快乐!!!

Cocos2d-x Lua游戏开发Mac环境搭建以及一点点感悟的更多相关文章

  1. Cocos 2d-X Lua游戏开发Mac环境搭建以及一点点感悟

    接触Cocos2d-x 最近由于公司项目的需要,自己开始接触Cocos,开始做一些简单的轻量级的游戏,以前没有接触过这一块的东西,也是借助这个机会学习一下游戏的开发,由于以前自己接触的全都是iOS和A ...

  2. mac下用clion进行sdl2游戏开发de环境搭建

    1. 故事背景 想从unity转unreal了,于是要使用c++进行开发.unreal引擎那么大,每次打开,我的小本都嗡嗡嗡的,想着不如用个轻量一些的引擎先开发吧,核心代码独立出来,到时候如果真要移植 ...

  3. 【Cocos2D研究院之游戏开发】

    http://www.xuanyusong.com/archives/category/ios/cocos2d_game 分类目录归档:[Cocos2D研究院之游戏开发]   201211-19 Co ...

  4. IOS开发基础环境搭建

    一.目的 本文的目的是windows下IOS开发基础环境搭建做了对应的介绍,大家可根据文档步骤进行mac环境部署: 二.安装虚拟机 下载虚拟机安装文件绿色版,点击如下文件安装 获取安装包:       ...

  5. 【1】windows下IOS开发基础环境搭建

    一.目的 本文的目的是windows下IOS开发基础环境搭建做了对应的介绍,大家可根据文档步骤进行mac环境部署: 二.安装虚拟机 下载虚拟机安装文件绿色版,点击如下文件安装 获取安装包:       ...

  6. Python开发:环境搭建(python3、PyCharm)

    Python开发:环境搭建(python3.PyCharm) python3版本安装 PyCharm使用(完全图解(最新经典))

  7. Windows下Lua+Redis 断点调试环境搭建==Linux下类似

    Lua+Redis 断点调试环境搭建 windows环境,使用Redis,写lua脚本头疼的问题之一不能对脚本断点调试,google加上自己的摸索,终于搞定. 1.下载ZeroBraneStudio, ...

  8. golang开发android环境搭建_window

    golang开发android环境搭建介绍 一 安装依赖软件: git:版本管理 go:  go开发环境(版本>=1.5),可直接下载window版的go安装包. android studio: ...

  9. lua游戏开发实践指南学习笔记1

    本文是依据lua游戏开发实践指南做的一些学习笔记,仅用于继续自己学习的一些知识. Lua基础 1.  语言定义: 在lua语言中,标识符有非常大的灵活性(变量和函数名),只是用户不呢个以数字作为起始符 ...

随机推荐

  1. 201521123077 《Java程序设计》第12周学习总结

    1. 本周学习总结 1.1 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容 总的来说主要有三种类 InputStream/OutputStream(字节流操作类的父类) 提供对字节 ...

  2. 201521123059 《Java程序设计》第十一周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 1.实现线程有两种方法:实现Ruannable接口和继承Thread类: 2.使用线程的start()方法启动线程 ...

  3. SpringMVC第三篇【收集参数、字符串转日期、结果重定向、返回JSON】

    业务方法收集参数 我们在Struts2中收集web端带过来的参数是在控制器中定义成员变量,该成员变量的名字与web端带过来的名称是要一致的-并且,给出该成员变量的set方法,那么Struts2的拦截器 ...

  4. 实现一个简单的虚拟DOM

    现在的流行框架,无论React还是Vue,都采用虚拟DOM. 好处就是,当我们数据变化时,无需像Backbone那样整体重新渲染,而是局部刷新变化部分,如下组件模版: <ul class=&qu ...

  5. Android 之http编程

    HTTP-GET和HTTP-POST定义: 都是使用HTTP的标准协议动词,用于编码和传送变量名/变量值对参数,并且使用相关的请求语义. 每个HTTP-GET和HTTP-POST都由一系列HTTP请求 ...

  6. 利用ASP.NET操作IIS (可以制作安装程序)

    很多web安装程序都会在IIS里添加应用程序或者应用程序池,早期用ASP.NET操作IIS非常困难,不过,从7.0开始,微软提供了 Microsoft.Web.Administration 类,可以很 ...

  7. 《MATLAB从入门到放弃》打通 “矩阵” 障碍

    目录: »   矩阵的生成与大小  >   简单矩阵的生成  >  随机矩阵的生成  >   矩阵的大小 »  矩阵的索引与访问 »  矩阵的拼接与裁剪 >  矩阵的拼接 &g ...

  8. 在Storyboard中为UITableView添加Header和Footer

    我在这里所说的Header和Footer并不是sectionHeader和sectionFooter,而是指UITableView的tableHeaderView和tableFooterView,这两 ...

  9. 自己写实现char TO wchar_t 的转换

    wchar_t CharToWChart(char nChar){    wchar_t nR;    nR=nChar+32*256;    return nR;}//--------------- ...

  10. Vue状态管理vuex

    前面的话 由于多个状态分散的跨越在许多组件和交互间各个角落,大型应用复杂度也经常逐渐增长.为了解决这个问题,Vue提供了vuex.本文将详细介绍Vue状态管理vuex 引入 当访问数据对象时,一个 V ...