溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

【cocos2d-x從c++到j(luò)s】16:使用cocos2d-console工具轉(zhuǎn)換腳本為字節(jié)碼

發(fā)布時間:2020-06-28 16:46:58 來源:網(wǎng)絡(luò) 閱讀:4777 作者:老G 欄目:游戲開發(fā)

從Cocos2D-X v2.1.4版本開始,增加了Cocos2D-console命令行工具,該工具的其中一個功能是:把.js文件轉(zhuǎn)換為.jsc文件,該文件是字節(jié)碼格式,可以提高代碼的安全性。


使用這個工具的方式很簡單。以引擎自帶的TestJavaScript項目為例:

首先我們cd到Cocos2D-console的目錄

goldliontekiMacBook-Pro:~ goldlion$ cd /Users/goldlion/Documents/developer/cocos2d-x-3.0beta/tools/cocos2d-console/console


然后可以看到里面有很多.py腳本

cocos2d_jscompile.py

cocos2d_version.py

cocos2d.py

cocos2d_new.py


其中cocos2d.py是我們要使用的主腳本文件。使用命令./cocos2d.py jscompile --help查看編譯字節(jié)碼的命令格式


goldliontekiMacBook-Pro:console goldlion$ ./cocos2d.py jscompile --help
Usage: cocos2d.py jscompile -s src_dir -d dst_dir [-c -o COMPRESSED_FILENAME -j COMPILER_CONFIG]
Options:
  -h, --help            show this help message and exit
  -s SRC_DIR_ARR, --src=SRC_DIR_ARR
                        source directory of js files needed to be compiled,
                        supports mutiple source directory
  -d DST_DIR, --dst=DST_DIR
                        destination directory of js bytecode files to be
                        stored
  -c, --use_closure_compiler
                        Whether to use closure compiler to compress all js
                        files into just a big file
  -o COMPRESSED_FILENAME, --output_compressed_filename=COMPRESSED_FILENAME
                        Only available when '-c' option was True
  -j COMPILER_CONFIG, --compiler_config=COMPILER_CONFIG
                        The configuration for closure compiler by using JSON,
                        please refer to compiler_config_sample.json


參數(shù)非常簡單,一個輸入目錄,一個輸出目錄,后面加一組可選參數(shù)。該工具在遍歷.js文件時支持文件夾遞歸訪問,在輸出.jsc文件時支持按照源文件夾的結(jié)構(gòu)全部新建文件夾。易用性還是不錯的。


TestJavaScript其中一個文件夾ExtensionsTest使用Cocos2D-console工具進行加密來測試。輸出路徑設(shè)置為桌面

./cocos2d.py jscompile -s /Users/goldlion/Documents/developer/cocos2d-x-3.0beta/samples/Javascript/Shared/tests/ExtensionsTest -d /Users/goldlion/Desktop/ExtensionsTest


打開輸出的ExtensionsTest文件夾看到,所有.js都變成了.jsc,并且體積都大幅度減小。


下面說一下可選參數(shù),可選參數(shù)的意思是使用closure compiler工具壓縮代碼為一個文件。

COMPRESSED_FILENAME是壓縮后的文件名,最好使用xxx.js,因為工具會自動再后面加個c

COMPILER_CONFIG是壓縮時調(diào)用的配置文件,需要根據(jù)項目需求自己填寫,在bin目錄下有一個做好的缺省例子可以使用,compiler_config_sample.json


我并不建議使用這種做法,因為:

1.如果將所有腳本都壓縮為一個文件,那么每次更新都要重新下載這個文件,對于一些對省流量要求很高的公司不適合。

2.壓縮的目的是隱藏文件目錄結(jié)構(gòu),但是這個工具只壓縮了腳本部分,對于圖片,動畫,數(shù)據(jù),音頻視頻等等都是不考慮的。而一般開發(fā)的方式需要把所有資源都壓縮成一個文件,然后在游戲在線更新時只下載更新檔,通過程序?qū)⒏聶n中的文件打入到大文件中。注意這涉及到二進制級別的比較刪除以及合并,需要做非常仔細的設(shè)計,




向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI