(32)-cocos2d-x & javascript跨平台初体验

最后更新于:2022-04-01 20:00:08

近日,cocos2d家族开始了版本的联合发布,也就是说从cocos2d-x的2.1版本开始,终于可以实现广大开发者期盼已久的一套代码横跨ios,android和html5的梦想了,这次联合发布的包括cocosBuilder,cocos2d-iphone,cocos2d-x和cocos2d-html5版本,这篇文章就是笔者对这套开发工具的初体验经验总结。使用的是第二次联合发布的cocos2d-x的2.1.1版本。 首先是从cocosbuilder中创建项目工程,然后导出的过程,首先创建工程,如图所示: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-26_571f3f16072bc.png) 这个模板工程是这样一个界面,带有写好的js逻辑,点击按钮标题会旋转,然后在菜单中选择导出设置,设置导出的类型和支持的分辨率。  ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-26_571f3f162ba33.png) 可以选择的包括android,ios和html5,然后在菜单中选择“Publish”就可以分别导出这三种平台需要的资源目录了,如图 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-26_571f3f164abfe.png) 然后就是把这三个文件夹中的资源文件分别在三个平台上运行,首先是ios平台,直接使用cocos2d-x就可以,首先创建cocos2d-x的js项目  ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-26_571f3f1664415.png)    然后就是把xcode的cocos2dx-js模板项目中的js文件和ccb文件替成新的就可以了,这里有几个地方是需要注意的。 1)这个项目里只有一个启动类AppDelegate,但是替换js时AppDelegate的入口js文件需要修改的,位置很容易找到。 2) 在项目里引入js文件时,xcode不会自动把js文件打入到包里,这样就会出现找不到js文件的情况,我们需要做的就是手动的修改一下,在项目的Build Phase设置里面,有个Copy Bundle Resources项目,手动把js文件添加进去。                ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-26_571f3f168aaed.png)    编译运行,效果如图所示          ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-26_571f3f16a8d86.png) 接下来是android平台上的运行,关于android平台开发环境的搭建,请参考cocos2d-x的官方文档  [http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Setting_up_Android_Development_Environment_on_Mac_OSX#Setup-Eclipse-in-MBP-Retina](http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Setting_up_Android_Development_Environment_on_Mac_OSX#Setup-Eclipse-in-MBP-Retina) 值得一提的是,google在eclipse的基础上为android创建了一个集成的开发环境Android Developer Tools,虽然就是以前的eclipse+adt插件+sdk的集合,但是这样的集合也省去了我们配置的时间,另外需要说明的是文档中提到的定义环境变量的问题,需要首先运行pico .bash_profile命令,另外第一行的环境变量名称应该是ANDROID_SDK_ROOT。配置好了环境以后我们就可以运行build_native来编译,需要注意的就是 1)编译的Android.mk文件和Application.mk都需要修改,可以参考Sample下的javascript项目,需要增加一些内容。 2)assert文件夹虽然是自动生成的,但是需要做一项额外的工作,就是把引擎目录或者是lib目录下,“scripting\javascript\bindings\js”目录下的js文件拷入到你的assert目录下,如果你觉得这样麻烦,也可以修改build_native,可以参考Sample下的javascript项目的build_native写法自动把这些文件拷近来,总之这一步是必须的。 3)最后便可以像文档中所说的,在elipse做最后的联机调试,需要说明的是,我在模拟器上运行是报错的,需要用真机调试,我使用的是HTC-G7调试,这个页面的帧率在58左右,跑cocos2dxjs自带的模板时,有很多西瓜的那个页面帧率基本是30-40,可以看出js在android上的效率还是不错的。                               ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-26_571f3f16c8c25.png) 最后是html5版本,关于cocos2D-html5的环境搭建,请参照我之前的文章: [http://blog.csdn.net/bill_man/article/details/7668516](http://blog.csdn.net/bill_man/article/details/7668516) 在mac上的搭建也是大同小异,下载最新的cocos2D-html5版本然后解压,将目录下的全部文件拷贝到xampp的目录htdocs下,然后在CocosDragonJS同级的目录下创建一个GameClientJS目录,并把Published-html5文件夹拷入,然后启动xampp,输入地址运行cocos2d-html5目录下的index.html页面:                        ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-26_571f3f16e406d.png) 我加了一个GameClientJS的链接,点击这个链接运行ameClientJS\Published-html5目录下的index.html页面。                         ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-26_571f3f170c4a8.png) 如有错误之处,欢迎指正。
';