我是在今年6月份左右接触到cocos2d这个东西的,当时就是想写个小游戏,结果买书的时候误打误撞就买了cocos2d的书。

cocos2d是一个开源的游戏引擎,用于构建2d游戏,同时也可以用它写各种图形界面的交互应用。客观说,用cocos2d可以写任何程序。

至于引擎是什么,我也不是超级权威的人,也没有用过很多引擎,但是按照我的理解,引擎就是你写代码时候的一个附加工具。可以这样说,我用Objc写游戏,用Objc自带的类库,还有Apple提供的Cocoa Touch等官方类库,就可以写任何游戏,但是这样写游戏非常麻烦,每一个动作都要你自己组织代码。引擎就像是一个小助手,帮你把好多函数,好多东西都封装好了,封装成很多非常简单,易于理解的接口和函数。比如,如果你要显示一个人物图片在屏幕上,你只需要调用引擎的两个函数,输入图片文件的名称,然后输入显示图片的位置,引擎就会帮你把图片显示出来,非常简单容易理解。

有些人会觉得用引擎很低端,而且引擎添加了很多不必要的东西,有时候会拖慢应用的速度,反正就是用引擎不好。这个想法当然是对的,引擎本来就是一个不小的东西,能把这么多方法都封装好,肯定需要很多文件什么的,加载引擎的时候肯定也会拖慢应用的速度,毕竟我们大多数的应用都只会用到引擎的很小一部分东西,其它功能对我们这个应用可能都是没用的。但是对于一个刚刚接触游戏开发的人来说,我想引擎是一个很好的选择。因为引擎把很多东西都封装了,剩下给我们的接口都非常好理解,我们可以很快地熟练掌握使用引擎。还有,对于游戏开发经验为0的人来说,能够想清楚游戏的思路应该是他们最先考虑的问题,引擎的出现让他们能够很专心地想清楚游戏思路,因为有了思路,用引擎实现并不是一件非常难的事情。

好,说完了引擎,接下来就说说cocos2d

cocos2d最早是由Ricardo开发的,当时他用的是Python,只是想用Python很快地写一些游戏,结果就每个游戏都要重新写引擎,然后他就想要做一个通用的引擎。这样就酝酿出了cocos2d

cocos2d现在主要分为cocos2d-iphone和cocos2d-x

这个就是cocos2d-iphone的专有图标。

cocos2d-iphone是在Xcode环境下,使用Objc编写的,只使用于iOS和Mac OS X的开发  

这个是cocos2d-x的专有图标

cocos2d-x是一个多平台的引擎,使用C++编写,所以可以在iOS、Android等多平台进行开发,可以在Xcode、Eclipse、VS等多个环境下进行书写

 

虽然有分两个分支,但是这两个的核心是相同的,所有的函数和接口都可以分别在这两个分支下找到,也就是说它们实现的功能是一样的,只是写的方式不一样。

 

其中,著名的捕鱼达人就是cocos2d的作品。

关于cocos2d这个东西的更多相关文章

  1. 另一个维度:cocos-2d VS vue

    最近再看cocos-2d的东西,期间得到了同事和老板的支持,在此感谢.之前一直在做vue网页,现在看游戏cocos-2d这块,刚接触肯定有点不适应.cocos-2d多了很多感念:导演.场景.节点等.这 ...

  2. 我的iOS开发之路

    我终于开始写我的第一个cocos2d-iphone程序了.纪念一下 额,这是一个悲伤的故事.其实我从开始准备开发iOS已经好久了,从我装上Xcode开始到现在,应该已经有差不多一年的时间了把. 还记得 ...

  3. cocos2d(3.0)一些基础的东西

    1.创建项目后环境配置: 附加文件夹:加入 $(EngineRoot) $(EngineRoot)cocos $(EngineRoot)cocos\editor-support $(EngineRoo ...

  4. 学生信息管理系统(cocos2d引擎)——数据结构课程设计

    老师手把手教了两天半,看了一下模式,加了几个功能就大功告成了!!! 给我的感想就是全都是指针! 添加图片精灵: CCSprite*  spBG = CCSprite::create("&qu ...

  5. 如何优化cocos2d程序的内存使用和程序大小

    在我完成第一个游戏项目的时候,我深切地意识到"使用cocos2d来制作游戏的开发者们,他们大多会被cocos2d的内存问题所困扰".而我刚开始接触cocos2d的时候,社区里面的人 ...

  6. 如何优化cocos2d程序的内存使用和程序大小:第一部分

    译者: 在我完成第一个游戏项目的时候,我深切地意识到“使用cocos2d来制作游戏的开发者们,他们大多会被cocos2d的内存问题所困扰”.而我刚开始接触cocos2d的时候,社区里面的人们讨论了一个 ...

  7. 在cocos2d里面如何使用Texture Packer和像素格式来优化spritesheet

    免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作 ...

  8. 新的开始---cocos2d

    今天是一个新的开始,cocos2d的环境搭配好了,并且打包案桌apk的环境也搭配好了,安卓的这个搭配环境还是出了一点问题,前面弄了两个晚上(11-12.30)没弄出来,中间好几天都没有去弄,今天光棍节 ...

  9. cocos2d制作动态光晕效果基础——blendFunc

    转自:http://www.2cto.com/kf/201207/144191.html 最近的项目要求动态光晕的效果. 何谓动态光晕?之前不知道别人怎么称呼这个效果, 不过在我看来,“动态光晕”这个 ...

随机推荐

  1. Html5 部分特性

    HTML5 是 W3C 与 WHATWG 合作的结果. 编者注:W3C 指 World Wide Web Consortium,万维网联盟. 编者注:WHATWG 指 Web Hypertext Ap ...

  2. acl操作记录

    官方文档内容: 1.CREATE_ACL Procedure创建ACL Note: This procedure is deprecated in Oracle Database 12c. While ...

  3. iOS远程消息推送

    iOS 推送基础知识 Apple 使用公共密钥数字证书对来自 iOS 应用程序的推送请求进行身份验证,所以您首先需要创建身份验证密钥,并向 Apple 注册它们.我将在下一节中花相当长的篇幅来直接介绍 ...

  4. FMDB多线程读写问题,使用FMDataBaseQueue操作可以解决同时打开一个链接de读写问题

    现在ios里使用的数据库一般都是Sqlite,但是使用Sqlite有个不太好的地方就是在多线程的时候,会出现问题,sqlite只能打开一个读或者写连结.这样的话多线程就会碰到资源占用的问题. 最开始是 ...

  5. async await的前世今生

    async 和 await 出现在C# 5.0之后,给并行编程带来了不少的方便,特别是当在MVC中的Action也变成async之后,有点开始什么都是async的味道了.但是这也给我们编程埋下了一些隐 ...

  6. Problem 1183 - 排列

    #include<iostream> #include<vector> #include<algorithm> using namespace std; int c ...

  7. Android 常用网站

    Android Design : http://www.sunjw.us/adchs/index.html Android Developers : http://developer.android. ...

  8. Python - 多元组(tuple)

    声明一个多元组 (4, 5, 6) 这是列表 [4, 5, 6] 与列表不一样在于多元组使用() 来组织元素而list使用方括号[] 而且多元组不能更改,用于当你的数组不想像list一样会被更改时就使 ...

  9. utf8_general utf8_general utf8_bin区别

    对与general来说 ß = s 是为true的 但是对于unicode来说 ß = ss 才是为true的, 其实他们的差别主要在德语和法语上,所以对于我们中国人来说,一般使用general,因为 ...

  10. uboot环境变量分析

    uboot的环境变量在程序的运行和调试过程中都发挥着比较重要的作用. 一.环境变量 可以理解为全局变量,但是他的生命周期比全局变量要长,当程序已经结束运行时,全局变量就会消亡,但是环境变量在下次上电运 ...