根据开源社区的保守统计,基于Cocos2D-X开发的游戏全球范围内已经突破一亿安装量。网龙、空中网、Haypi、TinyCo、人人游戏、4399、热酷、五分钟等国内外领先的游戏开发公司,都在使用Cocos2D-X开发手机游戏。Cocos2D-X JavaScript Binding将进一步降低开发门槛, 广大JavaScript程序员也可以方便的使用Cocos2D-X引擎开发游戏。基于JS绑定版开发的游戏,未来可以实现平滑过渡至HTML5。
本期特邀Cocos2d-X创始人王哲,首席架构师,Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎,使用 C++ 开发,基于OpenGL ES,基于 Cocos2d-iphone,支持 WOPhone, iOS 4.1, Android 2.1 及更高版本, WindowsXP & Windows7,WindowsPhone 8,用Cocos2d-X开发的游戏已经超过了1亿的下载量,这里面Android是最大的量,这里面包括捕鱼达人的量,还有ios。Cocos2d-X其实已经足够成熟、足够稳定。基于Cocos2d-x引擎开发的游戏已达251款。
下面是一些精彩问答:
茶友:Cocos2d-X与Cocos2d-iphone有哪些不同.?
王哲:cocos2d-iphone是用objective-c语言写的,仅能在iOS和Mac上面运行。cocos2d-x是用C++写的,脚本绑定方面也使用了跨平台的lua和javascript,因此能在ios, android, wp8, linux, windows, mac osx, blackberry等绝大多数操作系统上运行。
茶友:cocos2d-x 是否支持 html5.?
王哲:支持html5的是另一个分支,cocos2d-html5。不过由于是我们同一伙人做的,所以网站仓库等都放在一起。后面等html5市场机会成熟的时候,不排除我们合并cocos2d-x和cocos2d-html5到同一个仓库的可能。
茶友:cocosbuilder增加了js脚本支持,但没有lua脚本支持。是说以后js是引擎发展重点么.?
王哲:1. 我们最后打算让cocos2d游戏兼容手机上的端游和页游两种形式,js能使游戏运行在浏览器的HTML5接口上,而lua不行。2. 今年cocos2d-x会以C++为基础,并行发展lua和javascript,毕竟HTML5现在还没起来。
cocos2d-x之所以能跨平台开发,是因为cocos2d-x的核心是调用了openglEx的api去实现的,所以理论上来说只要是支持openglEx的平台,都可以使用cocos2d-x去开发游戏。
我们使用cocos2d-x去实现的第一个游戏,其实是没有真正使用到-x的跨平台开发的,基本上都是在维护两份代码,结果当然大家都可以想象得到。因为,我不仅仅是cocos2d-x的新手,同时还是oc和c++的新手,于是,我在想一个问题,为什么我们要维护两份代码(.cpp和.mm),而-x却只是使用一份代码就能搞定?带着这个问题,我研究了-x的声音引擎,也就是SimpleAudioEngine这个类。结果被我发现了其中的原理,也就是以下两点:
1.使用平台宏定义区别加载头文件
2.使用oc中的.mm文件对c++与oc的兼容
以上两点,就可以帮我们做到真正的跨平台开发,一份代码同时解决两个平台的功能。当然,因为涉及到一些原生调用,是没有办法完全的做到一份代码实现所有功能的,比如说IOS的推送功能。所以,上面的两点就可以帮我们解决这样的问题了。
实现原理:
app->调用公共接口->调用平台实现
公共接口是没有实现的一个接口定义文件也就是一个简单的.h文件,通过实现接口,我们就可以实现分平台调用了。转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦