接触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. 201521123004 《Java程序设计》第3周学习总结

    1. 本周学习总结 (1)①使用构造函数(constructor) eg:Date now = new Date(); new Date(); //创建了一个Date对象 now是Date类型变量,存 ...

  2. 201521123049 《JAVA程序设计》 第2周学习总结

    *1. 本周学习总结 1.复习了一遍基本类型:整数类型(byte,short,int,long,char).浮点类型(float,double).boolean类型(true, false). 2.了 ...

  3. 201521123044 《Java程序设计》第14周学习总结

    1. 本章学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 友情提示:导图用ctrl+鼠标滚轮放大看更清楚些 2. 书面作业 1. MySQL数据库基本操作 建立数据库, ...

  4. (转载)Oracle12g安装图解与安装过程常见问题注意事项

    首附转载地址:http://jingyan.baidu.com/article/f96699bbab21c0894e3c1bf8.html 首先,点击"setup",建议以管理员身 ...

  5. PostgreSQL使用MyBatis,insert时返回主键

    MyBatis中普通的insert语句是这样的: <insert id="insert" parameterType="com.xxx.xxx.xxDo" ...

  6. MUI开发记录

    最近很久没有更新博客了,因为一直在学习前端h5 手机app的开发.曾经一度觉得自己css和js学得不错,进入到前端领域后才发现水很深~ HUuilder使用安卓模拟器 安卓模拟器有很多,我这里以夜神模 ...

  7. oracle 数据库管理员

    一.数据库管理员每个oracle数据库应该至少有一个数据库管理员(dba),对于一个小的数据库,一个dba就够了,但是对于一个大的数据库可能需要多个dba分担不同的管理职责.那么一个数据库管理员的主要 ...

  8. JSON和java对象的互转

    先说下我自己的理解,一般而言,JSON字符串要转为java对象需要自己写一个跟JSON一模一样的实体类bean,然后用bean.class作为参数传给对应的方法,实现转化成功. 上述这种方法太麻烦了. ...

  9. hibernate学习手记(2)

    1.javax.persistence.TransactionRequiredException: no transaction is in progress 出现该问题是我没有开启事务,我是在保存之 ...

  10. MySQL主从同步和读写分离的配置

    主服务器:192.168.1.126 从服务器:192.168.1.163 amoeba代理服务器:192.168.1.237 系统全部是CentOS 6.7 1.配置主从同步 1.1.修改主服务器( ...