加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

[cocos2dx]cocos2dx介绍

发布时间:2020-12-14 21:10:00 所属栏目:百科 来源:网络整理
导读:引擎简介 Cocos2d-x 的原型是 Cocos2d ,一个最早来源于几位 Python 开发者在 PyWeek 竞赛中的作品, 目的是封装底层绘图代码,简 化 2D 游戏的开发过程,避免每次都 " 重新发明轮子 " 。有了 Cocos2d ,开发者就可以把全部精力集中在游戏开发上,而不必关心

引擎简介

Cocos2d-x的原型是Cocos2d,一个最早来源于几位Python开发者在PyWeek竞赛中的作品,目的是封装底层绘图代码,简2D游戏的开发过程,避免每次都"重新发明轮子"。有了Cocos2d,开发者就可以把全部精力集中在游戏开发上,而不必关心绘图的细节。这个Python版本的引擎最早发布于20084月,并一直保持版本的更新。

Cocos2d发布的同年3月,苹果发布了iOSSDK,允许第三方开发者为iOS设备开发各种应用,其中游戏应用是最热门的。同样是为了简化游戏开发的难度,把大家从复杂的OpenGL编程中解放出来,RicardoQuesadaCocos2dPython移植到了iOS上,并使用iOS的原生语言Objective-C重写了游戏引擎。200811月,Cocos2d-iPhone引擎正式开源,发布了0.1版,为2D游戏开发提供了一个便利的方式。伴随着iOS开发的大潮,Cocos2d-iPhone引擎逐步完善,这得益于社区内世界各地开发者的贡献,并且其发展速度已经大大超过了Python版本。由于Cocos2d的易用性,使用Cocos2d-iPhone开发的游戏数量日益增多,至今已经有2500多个游戏在AppStore上架。

后来,Android的兴起大大扩展了移动终端的游戏市场,也由此产生了一个迫切的需求,即游戏开发者需要将游戏同时部署在两个热门平台上,但是为一个游戏维护两套代码的代价是非常昂贵的,尤其是在两个平台的主流语言、主流引擎还不统一的情况下。

因此,基于C++语言、以Cocos2d-iPhone为基础开发的Cocos2d-x出现了它凭借其从语言到接口的跨平台特性,受到了跨平台游戏开发者的广泛关注。使用Cocos2d-x开发的游戏已经可以做到"代码通用",只需要经过少量调整,就可以移植到包括iOSAndroidWindowsLinux在内的诸多平台上。

从本质上说,Cocos2d是一个图形引擎,封装了复杂的图形接口,通过抽象出精灵、动作等概念,降低了游戏开发难度,简化了开发过程。Cocos2d-x为保证游戏能方便地移植到不同平台上,又在此基础上做了很多扩展,包括一套Objective-C风格的基础类系、平台无关的多点触摸协议、重力感应和音频系统等。

Cocos2d系列产品关系

Cocos2d-iPhone取得成功后,Cocos2d系列产品已经推出许多子项目。这里列出了一些最为出名的旗下分支游戏引擎


蓝色方框中的分支引擎(包括Cocos2d-iPhone,Cocos2d-x,Cocos2d-HTML5CocosBuilder编辑器)在同一路径图上合作运行,并已发布协调版本。这意味着开发人员可以期待一条完整的工具链为网络设备或移动设备开发多平台游戏。

从下表可知,不同分支引擎支持不同的目标平台并使用不同的编程语言。

分支引擎

编程语言

平台

Cocos2d

Python

桌面操作系统

Cocos2d-iphone

Objective-C,JavaScript

iOS

Cocos2d-x

C++,Lua,JavaScript

参见支持平台和编程语言部分

Cocos2d-html5

JavaScript

支持HTML5的浏览器

ShinyCocos

Ruby

iOS

Cocos2d-windows

C++

WindowsXP/7

Cocos2d-android

Java

Android

Cocos2d-android-1

Java

Android

Cocos2d-xna

C#

MicrosoftandMonoGameplatforms

Cocos2d-javascript

JavaScript

支持HTML5的浏览器

Cocos-net

C#

Mono-supported平台

Cocos3d

Objective-C

iOS

架构


目录结构

目录名称

说明

CocosDenshion

音频支持。注意:Android平台中背景音乐和短音效所使用的系统API不同。

cocos2dx

Cocos2d-x框架的主目录。

document

你可以下载doxygen文档系统,利用该系统打开本文档文件夹内的doxygen.config文件,然后再生成离线API文档。

Extensions扩展

如果需要更多图形用户界面的控制功能、网络访问、CocosBuilder支持甚至2.5D功能,你可以使用usingnamespacecocos2d::extension

External外部的

包括box2dChipmunk库。

licenses

cocos2d依赖很多其他开源项目。所有授权许可文件都在这个目录。

samples

重要!这是你该开始用到的文件。从Cpp/HelloCpp开始学习,你会在TestCpp中发现所有类的用法。luajs样本也在这个目录。

scripting

我知道你不喜欢C++,写起来太复杂。没问题,我们有LuaJavascriptScripting文件夹包括来自火狐的lua官方引擎和SpiderMonkey引擎。

template

该目录包括在不同集成开发环境及不同平台中创建Cocos2d-x新项目的模板。这里汇集了数量庞大覆盖各种开发环境和平台的模板!

tools

包括将C++绑定至luajavascript的脚本文件。

CHANGELOG

作者修订记录文档。

主要功能

  • 流程控制(flowcontrol:非常容易管理不同场景(scene)之间的流程控制。
  • 精灵(sprite:快速而方便的精灵用于显示一切可见的元素。
  • 节点(node:基于树结构的分层组织方式,方便管理不同层次的游戏元素,同时提供了统一管理的计时器(scheduler)。
  • 动作(action:应用于精灵或其他游戏元素的动画效果,可以组合成复杂的动作,如移动(move)、旋转(rotate)和缩放(scale)等。
  • 特效(effect:包括波浪(wave)、旋转(twirl)和透镜(lens)等视觉特效。
  • 平面地图(tiledmap:支持矩形和六边形的平面地图。
  • 转换(Transitions:从一个场景移动到另外一个不同风格的场景
  • 菜单(menu:创建游戏中常用的菜单。
  • 文本渲染(TextRendering:支持标签和HTML标签动作
  • 用户输入:提供接受用户触摸事件、传感器(如加速度计)等输入的简单解决方案。
  • 文档(document:编程指南、API参考、视频教学以及很多简单可靠的测试样例。
  • MIT许可:免费开放的协议,但是请谨记尊重版权。
  • 基于Pyglet:没有外部的依赖
  • 基于OpenGL:支持硬件加速
  • 3D对象:MD2模型支持
  • 脚本语言:支持LuaJavaScript语言
cocos2d-lua.api
cocos引擎中文官网

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读