cocos2d-x是一个应用普遍的开源游戏引擎,主要是应用与开发2D游戏,开源运行于多个平台,若是只是针对于移动端平台而言,能够运行于android和ios平台。
cocos2d-x目前的版本是3.17,支持C++,JS, lua三种编程语言。
cocos2d-x的核心功能是编写单独的游戏,一个游戏做为单个APP,但在实际的APP开发中,若是要增长不少动画或者比较酷炫的效果,用原始的Native编写,就会显得比较麻烦。ios这边,可使用苹果官方的Sprite Kit这个游戏引擎,开发比较方便;android这边,可使用原生的java来开发或者引入其余的游戏引擎(我的以为开源的Libgdx比较合适),若是android采用Java来编写,不少游戏的基础功能就会受到很大的限制,譬如游戏暂停、游戏恢复、先后台切换时的音效处理,用android原生来处理就会很麻烦。一个统一的处理方案是在APP里面嵌入游戏引擎,普通页面由Native处理,游戏页面由游戏引擎处理,这样就能够实如今App里面嵌入小游戏的目标。
目前市面上的游戏引擎,支持跨平台、开源、应用普遍的不是不少,目前市面上的app多采用cocos2d-x。
cocos2d-x语言支持C++, JS, lua三种,技术上而言,选用哪个都OK。
因为cocos2d-x的引擎主要由C++编写,因此采用C++来编写。
这里又分为两种状况,
若是是app刚开始开发的话,能够直接在生成的cocos2d-x项目中添加android应用或者ios应用的代码,在游戏项目中添加应用代码,这样就不用花时间来配置开发环境了。
若是是app已经有不少功能了,这个时候就须要将cocos2d-x的源码导入到android应用或者是ios应用中,这个配置环境也会花费一些时间,一个比较稳妥的办法是,参考生成的cocos2d-x项目的代码,将cocos2d-x的代码嵌入到Native(android或者ios)项目中去。
另外,因为cocos2d-x是用于开发游戏的,通常而言,在app中的游戏,技术和逻辑都比较简单,难点在于与Native端的交互,一个建议就是,不要将游戏页面与Native页面耦合的太紧,这样会有不少意想不到的的坑。java