【cocos2d-x从c++到js】03:hybrid开发模式-创新互联-成都快上网建站

【cocos2d-x从c++到js】03:hybrid开发模式-创新互联

因为苹果是不允许app下载可执行代码的,所以用动态链接库构建插件式引擎并通过网络下载在iOS上是无法实现的。但有一种方式是,在引擎内部集成一个脚本解释器,然后把脚本作为资源来下载(脚本是加密的),如此规避苹果的审核条款。这个方式就叫Hybrid。但这么做没法做到不露痕迹,深层原因应该是,Hybrid牵扯利益太大,苹果也算睁一只眼闭一只眼。

为亳州等地区用户提供了全套网页设计制作服务,及亳州网站建设行业解决方案。主营业务为成都做网站、网站设计、亳州网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

在cocos2d引擎的众多分支中,cocos2d-x的开发是以C++为核心的。而cocos2d-x引擎,就是通过hybrid方式来执行js代码的。为了执行js代码,引擎本身需要一个脚本解释器,引擎集成的脚本解释器就叫:spidermonkey。

spidermonkey是一个历史悠久的基于c/c++编写的js脚本解释器,由Mozilla提供,非常有名的firefox和thunderbird都在用。cocos2d-x集成spidermonkey的开源协议是MPL2.0,没有什么限制,你可以放心使用它。

在AppDelegate::applicationDidFinishLaunching()函数中,我们可以找到启动脚本引擎的代码:

  1. ScriptingCore* sc = ScriptingCore::getInstance(); 
  2. "MoonWarriors-jsb.js"

ScriptCore是脚本的核心,他就是我们说的那个JS解释器。cocos2d-x把spidermonkey的解释器封装了一下,以提供对cocos2d-x引擎的相关支持,并简化相应的调用接口。

addRegisterCallback接口用于添加注册函数,注册函数用于在引擎执行时,绑定相应的代码(从JS往C++的映射代码)。每一个注册函数,对应一个库。现在cocos2d-x提供了四个库支持,分别是cocos2d-x核心库,cocos2d-x扩展库,cocosbuilder支持库,clipmunk物理引擎库。将来你可以在这里添加注册自己实现的JS绑定库,来直接扩展这个JS引擎。

start启动脚本引擎。

CCScriptEngineManager::sharedManager()->setScriptEngine 这句是将脚本引擎绑定到引擎管理器上,引擎管理器提供对脚本引擎的一个全局访问点,并且也负责对脚本引擎的卸载。

最后就是运行游戏的主脚本了。

ScriptingCore::getInstance()->runScript("MoonWarriors-jsb.js");

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享标题:【cocos2d-x从c++到js】03:hybrid开发模式-创新互联
文章URL:http://kswjz.com/article/ppsph.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流