评论

收藏

【cocos2d-x从c++到js】01:迎接脚本时代的到来

游戏开发 游戏开发 发布于:2021-06-27 15:21 | 阅读数:347 | 评论:0

  随着移动领域进入的游戏公司越来越多,开发成本一路上涨。以C++为代表的老一×××发语言,将直面lua,js等脚本语言的冲击。
  最近一年多来,移动端在做脚本化开发方案的公司越来越多。cocos2d开源社区很早就提出了用js打通各个分支版本的设想,底层执行方式是各个分支引擎的(-x,-iphone,html5),上层统一使用js,使得项目可以很方便的在各个引擎之间互换。
  从游戏开发来看,c++和js各具优势,两者结合威力无穷。前不久,cocos2d社区进行了一次联合发布,迈出了关键的一步。本系列将是我学习cocos2d-x for js的一些心得体会。
  cocos2d-x for js是cocos2d-x的一部分,他使用js做脚本,底层使用c++运行,在提升开发速度同时,保证了执行效率。
  首先,我们下载cocos2d-x的最新版本
  http://cocos2d-x.googlecode.com/files/cocos2d-2.1beta3-x-2.1.0.zip
  该版本中有好几个js游戏的例子:CocosDragonJS,MoonWarriors,WatermelonWithMe
  我们暂时不使用其他IDE了,对于cocos2d-x的开发者来说,手头最现成的工具就是vs。用vs2010打开工程,蛋疼的发现,里面既没有js代码,也没有c++代码。只有一个spidermonkey的js解释器,还有一个win32版cocos2d-x的壳。
DSC0000.jpg

  好吧,首先我们需要导入js的源代码,很不幸,这个项目的js源码也没有放在MoonWarriors的目录下,而是在
  cocos2d-2.1beta3-x-2.1.0\samples\TestJavascript\cocos2d-js-tests\games\MoonWarriors这个文件夹中
  我们把这里面的代码导入到MoonWarriors项目中。
DSC0001.jpg

  好吧,这个目录结构比较蛋疼。但是勉强能看了。
  但是又遇到了另外一个问题,我们在js源代码中,没法.出来代码,自动完成功能几乎是无效的。番茄只能提示出当前js文件中的代码,在其他文件中的代码,没法提示出来。尤其是引擎中的js接口。这个实在太要命了。
  我查了半天,发现cocos2d-2.1beta3-x-2.1.0引擎中,根本没有js版本的代码。也就是说,他们只是用spidermonkey把js的接口绑定成了c++的。这可如何是好呢?没代码就没法使用自动完成。
  呵呵,之前我们说过,这次是一次联合发布,也就是说各个版本的js接口应该是一致的,也就是说我们可以使用html5版本的js代码,来协助完成代码提示。
  去下一个html5引擎
  http://cocos2d-x.googlecode.com/files/Cocos2d-html5-v2.1.zip
打开后发现,我们要的代码在这四个文件夹里 DSC0002.jpg   把他们也导入到项目中
DSC0003.jpg

  然后,我们随便打开一个项目源代码,就可以.出来了。自动完成可以使用,哦也。

DSC0004.png 打完收工。