安下载游戏娱乐

分类分类

Cocos2d-x(多功能游戏开发系统框架)

Cocos2d-x(多功能游戏开发系统框架)

v4.0 免费版

大小:270.65 MB 更新:2020/12/08

类别:游戏工具系统:WinXP, Win7, Win8, Win10, WinAll

立即下载

  Cocos2d-x是一款采用C++编写的开源游戏框架,具有依赖于平台的薄层,它被广泛用于构建游戏,应用程序和其他基于跨平台GUI的交互式程序,还包括JavaScript和Lua绑定;全新的图形渲染器:用于Windows PC渲染器的Cocos2d已针对OpenGL的2D图形进行了优化,它支持骨骼动画,子画面图纸动画、坐标系、效果、多分辨率设备、纹理、过渡、平铺贴图和粒子;它采用了RenderQueue设计;游戏引擎包含许多组件,这些组件一起使用将有助于缩短开发时间,并且通常比自制引擎要好;游戏引擎通常包含以下部分或全部组件:渲染器,2d/3d图形,碰撞检测,物理引擎,声音,控制器支持,动画,序列等;游戏引擎通常支持多个平台,因此可以轻松开发您的游戏,然后将其部署到多个平台,而没有太多开销;由于Cocos2d-x是游戏引擎,因此它提供了用于开发跨平台移动和桌面游戏的简化API,通过将强大的功能封装在易于使用的API中,您可以专注于开发游戏,而不必担心技术基础的实现;Cocos2d-x将尽可能多地减轻您的负担!

Cocos2d-x(多功能游戏开发系统框架)

软件功能

  现代C ++ API(请参考3.0版中的更新)

  跨平台-桌面和移动

  能够在台式机上测试和调试游戏,然后将其推送到移动或台式机目标的功能

  丰富的API功能,包括子画面,动作,动画,粒子,过渡,计时器,事件,声音,文件IO,持久性,骨骼动画,3D

  游戏引擎是一种特殊的软件,它提供游戏开发时需要的常见功能;

  引擎会提供许多组件,使用这些组件能缩短开发时间,让游戏开发变得更简单;

  专业引擎通常会能比自制引擎表现出更好的性能。

  游戏引擎通常会包含渲染器,2D/3D 图形元素,碰撞检测,物理引擎,声音,控制器支持,动画等部分。

  Cocos2d-x就是这样的一个游戏引擎,它提供了许多易于使用的组件,有着更好的性能,还同时支持移动端和桌面端

  Cocos2d-x 通过封装底层图形接口提供了易用的API,降低了游戏开发的门槛

  让使用者可以专注于开发游戏,而不用关注底层的技术细节。

  更重要的是 Cocos2d-x 是一个完全开源的游戏引擎

  这就允许您在游戏开发过程中根据实际需要,定制化引擎的功能

  如果您想要一个功能但又不知如何修改,提出这个需求,全世界的开发者可以一起为您完成。

  只使用 Cocos2d-x 引擎,你就能完成一款游戏的开发,因为 Cocos2d-x 提供了游戏开发所需的一切。

  精灵(Sprite)

  之前我们提到,精灵是屏幕上移动的对象,它能被控制。

  你喜欢玩的游戏中主角可能就是一个精灵,我知道你在想是不是每个图形对象都是一个精灵

  如果你能控制它,它才是一个精灵,如果无法控制,那就只是一个节点(Node)。

  准确的说Sprite是一个能通过改变自身的属性:角度,位置,缩放,颜色等,变成可控制动画的 2D 图像

  开源跨平台游戏开发框架

  Cocos2d-x 是一套成熟的开源跨平台游戏开发框架。

  引擎提供了图形渲染、GUI、音频、网络、物理、用户输入等丰富的功能

  被广泛应用于游戏开发及交互式应用的构建。

  其核心采用 C++ 编写,支持使用 C++、Lua 进行开发。

  Cocos2d-x 适配 iOS、Android、Windows 和 Mac 系统,功能侧重于原生移动平台

  并向 3D 领域延伸扩展。

  动作(Action)

  动作(Action) 的功能就和字面含义一样,它通过改变一个 Node 对象的属性,让它表现出某种动作。

  动作对象能实时的改变 Node 的属性,任何一个对象只要它是 Node 的子类都能被改变。

  比如,你能通过动作对象把一个精灵从一个位置移动到另一个位置。

软件特色

  引擎优势

  Cocos2d-x 是 MIT 许可证下发布的一款功能强大的开源游戏引擎。

  允许开发人员使用 C++、Javascript 及 Lua 三种语言来进行游戏开发。

  支持所有常见平台,包括 iOS、Android、Windows、macOS、Linux。

  引擎特性

  现代化的 C++ API

  立足于 C++ 同时支持 JavaScript/Lua 作为开发语言

  可以跨平台部署, 支持 iOS、Android、Windows、macOS 和 Linux

  可以在 PC 端完成游戏的测试,最终发布到移动端

  完善的游戏功能支持,包含精灵、动作、动画、粒子特效、场景转换、事件、文件 IO、数据持久化、骨骼动画、3D

  Cocos2d-x 用户不仅包括个人开发者和游戏开发爱好者,还包括许多知名大公司

  如 Zynga、Wooga、Gamevil、Glu、GREE、Konami、TinyCo、HandyGames、IGG 及 Disney Mobile 等

  使用 Cocos2d-x 开发的许多游戏占据苹果应用商店和谷歌应用商店排行榜

  同时许多公司如触控、谷歌、微软、ARM,英特尔及黑莓的工程师在 Cocos2d-x 领域也非常活跃。

  在中国,每一年的手游榜单大作,Cocos2d-x 从未缺席,市场份额占 50% 以上

  游戏品类覆盖从轻度休闲,热火棋牌,到横版,SLG,重度 MMO 等市面全品类。

软件优势

  场景(Scene) 是一个容器,容纳游戏中的各个元素,如精灵,标签,节点对象。

  它负责着游戏的运行逻辑,以帧为单位渲染内容。

  可以想象游戏就像一个电影,场景是观看者能看到的正在发生的情景。

  一个电影至少需要一个场景,一个游戏也至少需要一个 Scene。

  在使用 Cocos2d-x 进行游戏的开发中,你可以制作任意数量的场景,并在不同场景间轻松切换。

  UI 组件不是游戏专用的,是个应用程序都可能会用几个。

  看一看你常使用的应用程序,肯定能发现它有使用 UI 组件。

  UI 代表什么,UI 组件是做什么的

  UI 代表用户界面,是 User Interface 的缩写,你看到的屏幕上的东西就是用户界面。

  界面组件有标签,按钮,菜单,滑动条等。

  Cocos2d-x 提供了一套易用的 UI 组件,游戏开发过程中,你能很容易的把它们添加到游戏中。

  听起来这可能很简单,但创建像 标签(Label) 这样的核心类实际要考虑很多问题。

  可以想象创建一套自定义的组件是多么的困难!

  当然你根本没必要这样做,因为你需要的我们都考虑到了。

使用说明

  高级节点对象

  除了 Label,Sprite 这些基本的节点对象外,Cocos2d-x 还提供了一些特殊的节点对象,来帮助构建一些高级功能。

  也许你想制作一个基于瓦片地图的游戏,也许你想添加粒子效果,也许你想在游戏中添加一个 2D 滚动的边栏,别担心,这些特殊的节点对象能帮助你。

  瓦片地图

  在游戏开发过程中,我们会遇到超过屏幕大小的地图,例如在即时战略游戏中,它使得玩家可以在地图中滚动游戏画面。这类游戏通常会有丰富的背景元素,如果直接使用背景图切换的方式,需要为每个不同的场景准备一张背景图,而且每个背景图都不小,这样会造成资源浪费。

  瓦片地图就是为了解决这问题而产生的。一张大的世界地图或者背景图可以由几种地形来表示,每种地形对应一张小的的图片,我们称这些小的地形图片为瓦片。把这些瓦片拼接在一起,一个完整的地图就组合出来了,这就是瓦片地图的原理。

  在 Cocos2d-x 中,瓦片地图实现的是 TileMap 方案,TileMap 要求每个瓦片占据地图上一个四边形或六边形的区域。把不同的瓦片拼接在一起,就可以组成完整的地图。TileMap 使用一种基于 XML 的 TMX 格式文件。

Cocos2d-x(多功能游戏开发系统框架)

  使用 TMX 文件创建一个瓦片地图:

  // reading in a tiled map.

  auto map = TMXTiledMap::create("TileMap.tmx");

  addChild(map, 0, 99); // with a tag of '99'

  瓦片地图可能有许多层,通过层名获取到一个特定的层。

  // how to get a specific layer

  auto map = TMXTiledMap::create("TileMap.tmx");

  auto layer = map->getLayer("Layer0");

  auto tile = layer->getTileAt(Vec2(1, 63));

  每个瓦片都有独一无二的位置和 ID,这使得我们很容易选择特定的瓦片。

  通过位置访问:

  // to obtain a specific tiles id

  unsigned int gid = layer->getTileGIDAt(Vec2(0, 63));

  瓦片地图布局示例:

Cocos2d-x(多功能游戏开发系统框架)

  有很多工具可以用来制作瓦片地图,Tiled 就是其中一款流行的制作工具,它有一个活跃的用户社区。推荐你去使用,上面的屏幕截图就来自 Tiled 的项目。

  粒子系统

  粒子系统是指计算机图形学中模拟特定现象的技术,它在模仿自然现象、物理现象及空间扭曲上具备得天独厚的优势,能为我们实现一些真实自然而又带有随机性的效果(如爆炸、烟花、水流)提供了方便。Cocos2d-x引擎中就为我们提供了强大的粒子系统。

  下面是使用粒子系统完成的两个粒子特效:

Cocos2d-x(多功能游戏开发系统框架)
Cocos2d-x(多功能游戏开发系统框架)

  创建粒子特效的工具

  尽管你能手动创建粒子特效,按照喜好确定每个属性,但是使用工具往往更方便高效。下面介绍几个第三方工具:

  Particle Designer:Mac 上一款非常强大的粒子特效编辑器

  V-play particle editor:一款跨平台的粒子特效编辑器

  Particle2dx:一款 Web 粒子特效编辑器,打开网页即可进行设计

  使用这些工具完成粒子特效的设计,最终会导出一个 .plist 文件,Cocos2d-x 通过使用这种文件,就能把粒子特效添加到场景中,添加方法和操作一个普通的节点类型一样。

  创建方法:

  // create by plist file

  auto particleSystem = ParticleSystem::create("SpinningPeas.plist");

  内置粒子特效

Cocos2d-x(多功能游戏开发系统框架)

  准备好添加粒子特效到你的游戏中了吗?是否习惯创建自定义粒子特效?不习惯也没关系,我们内置了一些粒子特效,你可以直接使用。这个列表都是:

  ParticleFire: Point particle system. Uses Gravity mode.

  ParticleFireworks: Point particle system. Uses Gravity mode.

  ParticleSun: Point particle system. Uses Gravity mode.

  ParticleGalaxy: Point particle system. Uses Gravity mode.

  ParticleFlower: Point particle system. Uses Gravity mode.

  ParticleMeteor: Point particle system. Uses Gravity mode.

  ParticleSpiral: Point particle system. Uses Gravity mode.

  ParticleExplosion: Point particle system. Uses Gravity mode.

  ParticleSmoke: Point particle system. Uses Gravity mode.

  ParticleSnow: Point particle system. Uses Gravity mode.

  ParticleRain: Point particle system. Uses Gravity mode.

  比如使用内置的烟火特效 ParticleFireworks:

  auto emitter = ParticleFireworks::create();

  addChild(emitter, 10);

  是这样的效果:

  要是内置的粒子特效不是你想要的那样,也没关系,你可以直接手动设置参数!让我们拿上面的烟火特效示例,并通过手动改变属性进一步控制。

  auto emitter = ParticleFireworks::create();

  // set the duration

  emitter->setDuration(ParticleSystem::DURATION_INFINITY);

  // radius mode

  emitter->setEmitterMode(ParticleSystem::Mode::RADIUS);

  // radius mode: 100 pixels from center

  emitter->setStartRadius(100);

  emitter->setStartRadiusVar(0);

  emitter->setEndRadius(ParticleSystem::START_RADIUS_EQUAL_TO_END_RADIUS);

  emitter->setEndRadiusVar(0); // not used when start == end

  addChild(emitter, 10);

  视差滚动

  视差滚动是指让多层背景以不同的速度移动,从而形成的立体运动效果。比如超级马里奥游戏中,角色所在地面的移动与背景天空的移动,就是一个视差滚动。Cocos2d-x 通过 ParallaxNode 对象模拟视差滚动。可以通过序列控制移动,也可以通过监听鼠标,触摸,加速度计,键盘等事件控制移动。ParallaxNode 对象比常规节点对象复杂一些,因为为了呈现不同的移动速度,需要多个子节点。它类似 Menu 像一个容器,本身不移动,移动的是被添加进入其中的不同子节点。

  事件分发机制

  Cocos2d-x 通过事件分发机制响应用户事件,已内置支持常见的事件如触摸事件,键盘事件等。同时提供了创建自定义事件的方法,满足我们在游戏的开发过程中,特殊的事件响应需求。

  基本元素

  事件监听器:负责接收事件,并执行预定义的事件处理函数

  事件分发器:负责发起通知

  事件对象:记录事件的相关信息

  监听器

  五种类型

  EventListenerTouch - 响应触摸事件

  EventListenerKeyboard - 响应键盘事件

  EventListenerAcceleration - 响应加速度事件

  EventListenMouse - 响应鼠标事件

  EventListenerCustom - 响应自定义事件

Cocos2d-x(多功能游戏开发系统框架)

  事件的吞没

  当你有一个监听器,已经接收到了期望的事件,这时事件应该被吞没。事件被吞没,意味着在事件的传递过程中,你消耗了此事件,事件不再向下传递。避免了下游的其它监听器获取到此事件。

  优先级

  事件的吞没中,我们提到了事件的传递。事件如何传递,先到哪个监听器?这是由优先级决定的。

  固定值优先级 使用一个整形的数值,数值较低的监听器比数值较高的监听器,先接收到事件。

  场景图优先级 是指向节点对象的指针,z-order 较高的节点中的监听器比 z-order 较低的节点中的,先接收到事件。由于 z-order 较高的节点在顶部绘制,所以使用这种优先级可以确保触摸事件被正确响应

  还记得这个场景图吗?图像绘制时,是按照 A, B, C, D, E, F, G, H, I 的顺序。

  当使用 场景图优先级 时,事件是按照绘制的反方向,即 I, H, G, F, E, D, C, B, A 传递。如果一个事件被触发,I 节点先接收到,如果在 I 节点中事件被吞没,则不会继续传递,未被吞没,事件将传递到 H 节点,每个节点都重复同样的逻辑,直到事件被吞没,或者传递结束,本次事件触发才完成。

精品推荐
同类推荐
相关下载
  • 最新排行
  • 最热排行
  • 评分最高
游戏娱乐排行榜
实时热词