Cocos2dx是基于MIT许可证打造的一款免费开源的移动2D游戏框架,具有开发快速、简易、功能强大等特点,让用户能够通过它快速进行编辑资源、动作和编写、调试代码,此外该软件还带来了从新建立项、游戏制作、到打包上线的全套流程,让你能够享受游戏开发一站式解决方案。
Cocos2dx完美汇集Cocos 2d-x、Cocos Studio、Cocos Code IDE等框架及工具,并带来图形渲染、GUI、音频、网络等丰富的功能,同时Cocos2dx还能够基于OpenGL ES进行图形渲染,让你能够打造出更加精致的iOS/Android游戏。
1、灵活
方便扩展,易于集成第三方库。
2、高效
Cocos2d-x基于OpenGL ES进行图形渲染,从而让移动设备的GPU性能发挥到极致。
3、免费
基于MIT协议的免费开源框架,用户可以放心使用,不用担心商业授权的问题。
4、社区支持
关心Cocos2d-x的开发者自发建立了多个社区组织,可以方便的查阅各类技术资料。
5、易于使用
游戏开发者可以把关注焦点放在游戏设置本身,而不必消耗大量时间学习晦涩难懂的OpenGL ES,此外,Cocos2d-x还提供了大量的规范。
1、新建游戏项目:一键立项,自动生成制作游戏所需的基本目录结构、资源、代码、支持库;
2、编辑游戏界面:依托近20种基础控件和众多自定义控件,可以方便快捷的拼接各种各样华丽的游戏界面;
3、编辑游戏动画:支持骨骼动画和帧动画,可以根据用户喜好快速实现游戏中各种逼真动画;
4、编辑游戏场景:不必再为各式各样的分辨率所困扰,使用布局特性设计游戏场景,全面适配各种分辨率;
5、编辑游戏逻辑:自动创建游戏界面对象;支持代码自动补全;支持断点调试,实时预览变量修改;
6、调试游戏项目:分别可在Windows、Mac平台上调试游戏,无须长时间等待编译;
7、打包游戏项目:一键部署,便捷生成apk/ipa程序。
1、CocosDenshion
音频支持。注意:Android平台中背景音乐和短音效所使用的系统API不同
2、cocos2d-x
Cocos2d-x框架的主目录
3、document
你可以下载doxygen文档系统,利用该系统打开本文档文件夹内的doxygen.config文件,然后再生成离线API文档
4、extensions
如果需要更多图形用户界面的控制功能、网络访问、CocosBuilder支持甚至2.5D功能,你可以使用using namespace cocos2d::extension
5、external
包括box2d及Chipmunk库
6、licenses
cocos2d依赖很多其他开源项目。所有授权许可文件都在这个目录
7、samples
重要!这是你该开始用到的文件。从Cpp/HelloCpp开始学习,你会在TestCpp中发现所有类的用法。lua和js样本也在这个目录
8、scripting
我知道你不喜欢C++,写起来太复杂。没问题,我们有Lua和Javascript。Scripting文件夹包括来自火狐的lua官方引擎和SpiderMonkey引擎
9、template
该目录包括在不同集成开发环境及不同平台中创建Cocos2d-x新项目的模板。这里汇集了数量庞大覆盖各种开发环境和平台的模板
10、tools
包括将C++绑定至lua及javascript的脚本文件
11、CHANGELOG
作者修订记录文档
12、cocos2d-win32.vc2010.sln
配套Visual Studio 2010打开。注意:VS 2008自Cocos2d-x v2.0版本以来就不再支持
13、cocos2d-win32.vc2012.sln
配套Visual Studio 2012打开
14、create-android-project.bat
在Windows平台运行
15、create-android-project.sh
在Linux或OS X平台运行
16、install-templates-msvc.bat
执行该文件安装后,你可以在Visual Studio中创建空的Cocos2d-x项目
17、install-templates-xcode.sh
执行该文件安装后,你可以在Xcode中创建空的Cocos2d-x项目
一、了解引擎
1、引擎优势
Cocos2d-x 是 MIT 许可证下发布的一款功能强大的开源游戏引擎。
允许开发人员使用 C++、Javascript 及 Lua 三种语言来进行游戏开发。
支持所有常见平台,包括 iOS、Android、Windows、macOS、Linux。
2、引擎特性
现代化的 C++ API
立足于 C++ 同时支持 JavaScript/Lua 作为开发语言
可以跨平台部署, 支持 iOS、Android、Windows、macOS 和 Linux
可以在 PC 端完成游戏的测试,最终发布到移动端
完善的游戏功能支持,包含精灵、动作、动画、粒子特效、场景转换、事件、文件 IO、数据持久化、骨骼动画、3D
3、市场占有
Cocos2d-x 用户不仅包括个人开发者和游戏开发爱好者,还包括许多知名大公司如 Zynga、Wooga、Gamevil、Glu、GREE、Konami、TinyCo、HandyGames、IGG 及 Disney Mobile 等。
使用 Cocos2d-x 开发的许多游戏占据苹果应用商店和谷歌应用商店排行榜,同时许多公司如触控、谷歌、微软、ARM,英特尔及黑莓的工程师在 Cocos2d-x 领域也非常活跃。
在中国,每一年的手游榜单大作,Cocos2d-x 从未缺席,市场份额占 50% 以上,游戏品类覆盖从轻度休闲,热火棋牌,到横版,SLG,重度 MMO 等市面全品类。一些以 Cocos2d-x 为基础开发出的游戏如下:
二、基本概念
假设您刚刚开始使用 Cocos2d-x,准备开始你的游戏开发之旅。不要因为自己是新手而担心,整个学习过程会很有趣。
1、让我们开始!
游戏引擎是一种特殊的软件,它提供游戏开发时需要的常见功能;引擎会提供许多组件,使用这些组件能缩短开发时间,让游戏开发变得更简单;专业引擎通常会能比自制引擎表现出更好的性能。游戏引擎通常会包含渲染器,2D/3D 图形元素,碰撞检测,物理引擎,声音,控制器支持,动画等部分。
Cocos2d-x 就是这样的一个游戏引擎,它提供了许多易于使用的组件,有着更好的性能,还同时支持移动端和桌面端。Cocos2d-x 通过封装底层图形接口提供了易用的API,降低了游戏开发的门槛,让使用者可以专注于开发游戏,而不用关注底层的技术细节。更重要的是 Cocos2d-x 是一个完全开源的游戏引擎,这就允许您在游戏开发过程中根据实际需要,定制化引擎的功能,如果您想要一个功能但又不知如何修改,提出这个需求,全世界的开发者可以一起为您完成。
只使用 Cocos2d-x 引擎,你就能完成一款游戏的开发,因为 Cocos2d-x 提供了游戏开发所需的一切。
2、组件简介
精通 Cocos2d-x 很难,但是上手 Cocos2d-x 很容易,让我们从一些基本概念开始。
下面是一个简单的游戏界面:
让我们再来看一下,分解这个游戏界面的组件构成。
能看到一个菜单(Menu),几个精灵(Sprite),和几个标签(Label),观察一下喜欢的游戏,会发现这些组件以某种形式存在其中。
一、使用图集
图集(Sprite Sheet) 是通过专门的工具将多张图片合并成一张大图,并通过 plist 等格式的文件索引的资源,使用图集比使用多个独立图像占用的磁盘空间更少,还会有更好的性能。这种方式已经是游戏行业中提高游戏性能的标准方法之一。
在使用图集时,首先将其全部加载到 SpriteFrameCache 中,SpriteFrameCache 是一个全局的缓存类,缓存了添加到其中的 SpriteFrame 对象,提高了精灵的访问速度。SpriteFrame 只加载一次,后续一直保存在 SpriteFrameCache 中。
示例:
单看这个图集,似乎很难分析出什么,让我们对比一下:
这就很容易看出来,它至少完成了将多个图像素材合为一个,同时减少了磁盘空间占用。
继续来看如何在代码中使用。
二、加载图集
获取到 SpriteFrameCache 的实例,把图集添加到实例中。
// load the Sprite Sheet
auto spritecache = SpriteFrameCache::getInstance();
// the .plist file can be generated with any of the tools mentioned below
spritecache->addSpriteFramesWithFile("sprites.plist");
这样我们就完成了,将一个图集添加到 SpriteFrameCache 中,现在我们就能利用这个对象创建精灵了!
三、创建图集
手动创建图集资源是一个单调乏味的过程,幸运的是有一些工具能帮助我们自动创建,下面是推荐的几个工具:
Texture Packer
Zwoptex
ShoeBox
Sprite Sheet Packer
1、为什么新建工程失败?
新工程创建失败可能有以下原因:
没有安装 python 2.7.5 版本(不支持 python3)
引擎目录下 tools/cocos2dconsole为空(一般git clone的仓库会出此问题,需要运行gitsubmodule update init)
引擎目录路径中有空格键(1.0.0. beta有此问题,以后版本已修正)
IDE目录和要新建的工程目录是否为中文路径
2、如何添加/编译cpp代码?
在通过ide新建工程的时候在新建工程向导的第二个tab页选中"Add Native Codes"就会建立带cpp代码的工程
如果新建工程的时候没有选择添加cpp源码,可以在需要的时候添加:
工程右键>Cocos Tools>Add Native Codes...
1.0.x beta 版本,工程右键>Cocos Tools>Build Runtime>next next… 在向导第二页点next的时候就会添加cpp源码到项目
3、如何导入旧工程?
目前ide只能导入ide建立工程,需要在ide中添加旧工程,可以先用ide建立一个新工程,然后把旧版本的代码和资源拷贝到新工程的src和res目录就可以了,main文件为入口文件,可能需要做相应的改动:
1.0.1 beta 以后,可以在/res/config.json中设置入口文件
1.0.0 beta,需要添加cpp代码,然后修改/frameworks/runtimesrc/Classes目录下AppDelegate.cpp和Runtime.cpp文件
4、如何改为竖屏?
3.1版本以后引擎建立的项目可以在res/config.json中设置3.0版本,需要添加cpp代码,然后修改AndroidManifest.xml文件
5、为什么cocostudio导出的资源在ide中显示不对?
那是因为工程的默认设计分辨率是960x640,和cocostudio的设计分辨率不匹配,可以在
脚本中设置一下设计分辨率,保持和cocostudio中的设置一致。
6、如何改变默认设计分辨率的大小?如何改变窗口初始大小?
设计分辨率可以在脚本中用代码设置
1.0.1 beta以后可以在/res/config.json中设置桌面runtime的初始窗口大小,1.0.0.beta 版本需要添加cpp代码然后修改
framework/runtime_src/Classes/Appdelegate.cpp 中的设置分辨率的值,然后重新编译runtime,然后在debug的配置中设置使用的runtime为自己编译的那一个。
7、为什么publish package 打包出来的apk还有play界面?
此问题不是必现,原因是编译runtime时候的残留的文件影响了release的编译,目前还不清楚具体是哪个文件,以后会解决此问题。如果出现问题,目前可以通过删除/frameworks/runtimesrc/proj.android 目录下的 gen bin objs 三个子目录重新打包来解决问题。
8、如何修改脚本的入口文件?
可以在/config.json中设置
引擎3.0版本在/frameworks/runtimesrc/Classes 目录下的AppDelegate.cpp 和Runtime.cpp 中修改
9、为什么加载ccb/ cocostudio导出的json 失败?
一般加载失败都是找不到资源导致的,需要把ccb/json所在路径通过fileutils.addsearchpath添加到系统中。json文件加载还需要注意不能用scenereader读取ui编辑器导出的文件,会出问题。
10、IDE如何安装eclipse插件呀?
1.0.1 beta版本后由于换了程序打包方式,还没来的急支持插件在线安装。只能通过手工下载eclipse插件然后解压到plugins目录的方式来手动安装。
1.0.0 beta版本支持在线安装插件。
168.49MB|行业软件
115.08MB|行业软件
38.68MB|行业软件
8.51 MB|行业软件
219.1 MB|行业软件
50.9 MB|行业软件
1.81 MB|行业软件
42.23MB|行业软件
7.52MB|行业软件
50.01MB|行业软件
对于您的问题快深感抱歉,非常感谢您的举报反馈,小编一定会及时处理该问题,同时希望能尽可能的填写全面,方便小编检查具体的问题所在,及时处理,再次感谢!