cocos2d-x在App中的应用
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页面耦合的太紧,这样会有很多意想不到的的坑。