因為蘋果是不允許app下載可執(zhí)行代碼的,所以用動態(tài)鏈接庫構建插件式引擎并通過網絡下載在iOS上是無法實現(xiàn)的。但有一種方式是,在引擎內部集成一個腳本解釋器,然后把腳本作為資源來下載(腳本是加密的),如此規(guī)避蘋果的審核條款。這個方式就叫Hybrid。但這么做沒法做到不露痕跡,深層原因應該是,Hybrid牽扯利益太大,蘋果也算睜一只眼閉一只眼。
為亳州等地區(qū)用戶提供了全套網頁設計制作服務,及亳州網站建設行業(yè)解決方案。主營業(yè)務為成都做網站、網站設計、亳州網站設計,以傳統(tǒng)方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!在cocos2d引擎的眾多分支中,cocos2d-x的開發(fā)是以C++為核心的。而cocos2d-x引擎,就是通過hybrid方式來執(zhí)行js代碼的。為了執(zhí)行js代碼,引擎本身需要一個腳本解釋器,引擎集成的腳本解釋器就叫:spidermonkey。
spidermonkey是一個歷史悠久的基于c/c++編寫的js腳本解釋器,由Mozilla提供,非常有名的firefox和thunderbird都在用。cocos2d-x集成spidermonkey的開源協(xié)議是MPL2.0,沒有什么限制,你可以放心使用它。
在AppDelegate::applicationDidFinishLaunching()函數(shù)中,我們可以找到啟動腳本引擎的代碼:
- ScriptingCore* sc = ScriptingCore::getInstance();
- "MoonWarriors-jsb.js"
ScriptCore是腳本的核心,他就是我們說的那個JS解釋器。cocos2d-x把spidermonkey的解釋器封裝了一下,以提供對cocos2d-x引擎的相關支持,并簡化相應的調用接口。
addRegisterCallback接口用于添加注冊函數(shù),注冊函數(shù)用于在引擎執(zhí)行時,綁定相應的代碼(從JS往C++的映射代碼)。每一個注冊函數(shù),對應一個庫。現(xiàn)在cocos2d-x提供了四個庫支持,分別是cocos2d-x核心庫,cocos2d-x擴展庫,cocosbuilder支持庫,clipmunk物理引擎庫。將來你可以在這里添加注冊自己實現(xiàn)的JS綁定庫,來直接擴展這個JS引擎。
start啟動腳本引擎。
CCScriptEngineManager::sharedManager()->setScriptEngine 這句是將腳本引擎綁定到引擎管理器上,引擎管理器提供對腳本引擎的一個全局訪問點,并且也負責對腳本引擎的卸載。
最后就是運行游戲的主腳本了。
ScriptingCore::getInstance()->runScript("MoonWarriors-jsb.js");
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。