【Cocos2dx游戏开发】Cocos2d-x简介
一、简介
最近在做一个Android下的卡牌游戏——《九州幻想》开发项目,而我们使用的引擎是Cocos2dx,所以想要写写笔记来记录一下项目中的收获。当然首先稍微介绍一下Cocos2d-x引擎:cocos2d-x是一个免费、开源、跨平台的2D游戏引擎。
我们知道Cocos2d是一个基于MIT协议的开源框架,用于构建游戏、应用程序和其他图形界面交互应用。最初cocos2d仅是一个用Python语言写的游戏框架,并没有什么商业价值。2008年,苹果手机的发展正盛,cocos2d社区抓住了这个机遇,开发出了cocos2d-iPhone版本,即用Objective-C语言替换Python重写了整个框架。由此,cocos2d-iPhone随着iOS的发展而迅速壮大。2010年,cocos2d已经成为iOS平台上首选的2D游戏框架。
2010年,Android迅速崛起并能与iOS抗衡的时候,开发者希望能够把游戏移植到Android平台上,于是cocos2d的另一个分支cocos2d-x被开发出来,框架用C++重写。Cocos2d-X发展的重点是围绕Cocos2d跨平台,Cocos2d-x项目可以很容易地建立和运行在iOS,Android,黑莓Blackberry等操作系统中。还支持Windows、Mac和Linux等桌面操作系统。
二、整体框架
玩家玩游戏的过程其实就是在程序设置的场景之间进行跳转。那么一般一个游戏场景中的设计如下图:
我们如何将这样的一个游戏场景变为cocos2d-x的实现框架呢?那么我们就需要了解cocos2d-x中几个最基本的概念:
1)导演类(CCDirector)
在游戏里,导演类就是游戏创作的组织者和领导者,是游戏的总指挥,让游戏内的场景、布景和人物角色有序的运行,它是一个单例类。
2)场景类(CCScene)
在游戏里,场景就是一个个关卡,而一个关卡主要是由布景或层(CCLayer)和人物或精灵(CCSprite)组成。
3)层(CCLayer)
层就是上面所说的布景,一个场景中可以有多个层。
4)精灵(CCSprite)
人物、英雄、怪物等都是一个精灵,一个层中可以有多个精灵。
5)动作(CCAction)
游戏中,精灵所要执行的动作。
介绍了基本的几个概念之后,我们就可以把游戏场景的设计图变成Cocos2dx的实现设计图了,如下:
简单的介绍到这里,更多的我就不多说了,可以去看Cocos2dx游戏开发的教程比较好。
【Cocos2dx游戏开发】Cocos2d-x简介的更多相关文章
- cocos2d-x 游戏开发之有限状态机(FSM) (四)
cocos2d-x 游戏开发之有限状态机(FSM) (四) 虽然我们了解了FSM,并且可以写自己的FSM,但是有更好的工具帮我们完成这个繁琐的工作.SMC(http://smc.sourceforge ...
- cocos2d-x 游戏开发之有限状态机(FSM) (三)
cocos2d-x 游戏开发之有限状态机(FSM) (三) 有限状态机简称FSM,现在我们创建一个专门的FSM类,负责管理对象(Monkey)的状态.然后Monkey类就实现了行为与状态分离.Monk ...
- cocos2d-x 游戏开发之有限状态机(FSM) (一)
cocos2d-x 游戏开发之有限状态机(FSM) (一) 参考:http://blog.csdn.net/mgphuang/article/details/5845252<Cocos2d-x游 ...
- cocos2d-x 游戏开发之有限状态机(FSM) (二)
cocos2d-x 游戏开发之有限状态机(FSM) (二) 1 状态模式
- 《Cocos2d-x游戏开发实战精解》学习笔记4--实战一个简单的钢琴
上一节学习了使用Cocos2d-x播放音乐的方法,但是那种方法一般只适合于播放较大的音乐,而一般比较短小的音乐(如游戏中的打斗.按键音效等)则要通过playEffect来播放.本节使用该方法以及之前学 ...
- 《Cocos2d-x游戏开发实战精解》学习笔记3--在Cocos2d-x中播放声音
<Cocos2d-x游戏开发实战精解>学习笔记1--在Cocos2d中显示图像 <Cocos2d-x游戏开发实战精解>学习笔记2--在Cocos2d-x中显示一行文字 之前的内 ...
- cocos2d-x游戏开发实战原创视频讲座系列1之2048游戏开发
cocos2d-x游戏开发实战原创视频讲座系列1之2048游戏开发 的产生 视持续更新中.... 视频存放地址例如以下:http://ipd.pps.tv/user/1058663622 ...
- Cocos2dx游戏开发系列笔记13:一个横版拳击游戏Demo完结篇
懒骨头(http://blog.csdn.net/iamlazybone QQ:124774397 ) 写下这些东西的同时 旁边放了两部电影 周星驰的<还魂夜> 甄子丹的<特殊身份& ...
- cocos2d-x游戏开发系列教程-前言
cocos2d-x游戏开发前景: 最近企业对于Cocos2D-X开发人才的用人需求很大,而且所提供的薪资相当可观. 为满足广大向往游戏开发行业同学的需求,特推出适合新手的Cocos2D-X手游开发教程 ...
随机推荐
- mysql的简单优化【简单易学】
1.选取最适用的字段属性: 表字段尽量设小,不要给数据库增加没必要的空间:如:值为'01'.'02',给char(2)即可: 2.使用连接(JOIN)来代替子查询(Sub-Queries): 使用jo ...
- OC语言Block
OC语言Block 一.Block (一)简介 Block是什么?苹果推荐的比较特殊的数据类型,效率高,在运行中保存代码.用来封装和保存代码,有点像函数,BLOCK可以在任何时候执行. Block和 ...
- Android yuv转Bitmap
YuvImage image = new YuvImage(data, ImageFormat.NV21, size.width, size.height, null); if(image!=nu ...
- Angular——配置模块与运行模块
配置模块 通过config方法实现对模块的配置,AngularJS中的服务大部分都对应一个“provider”,用来执行与对应服务相同的功能或对其进行配置.比如$log.$http.$location ...
- angular 琐碎
1.controller 只要在一个地方引用就可以了,路由的时候不用指定controller了,在HTML中指定就可以了,否则会初始化两次 2.angular 模块间的服务无层级关系,相互可见.本质是 ...
- bootstrap插件bootbox参数和自定义弹出框宽度设置
插件官方地址:http://bootboxjs.com/ alert: 1 bootbox.alert("Hello world!", function() {}); dialog ...
- Git 分支使用
一个主分支肯定是不够用的,不同的开发最好放在不同的分支上,在最后进行合并,不然在开发中会相互干扰. PS:环境Window xp,Git-1.8.4-preview20130916(http://gi ...
- 16监听器、Filter、Nginx、Spring、AOP
16监听器.Filter.Nginx.Spring.AOP-2018/07/30 1.监听器 监听web对象创建与销毁的监听器 ServletContextListener HttpSessionLi ...
- Ubuntu---vim配置
1. Linux g++开启C++11支持 1.1 使用vim打开.bashrc文件 sudo vim ~/.bashrc 1.2 在some more ls aliases注释块的地方添加: ali ...
- 集合类(Collection和Map接口)简介
集合分为Collection和Map,详细分类如下图所示: 以下是测试验证代码: //HashSet,无序(存取不一致).去重 Set set_H = new HashSet(); set_H.add ...