准備開新項目了,在尋找合適的框架,后來就發現了Quick-Cocos2d-x這玩意. 別說,還挺好使.之后一步步研究,發現Lua不加密是不行的.
加密的方法在這里.
因為在做版本更新的時候,一般大家都是做熱更新的,但是如果每次熱更新都更新所有腳本,那量有點大.所以我就打算做一個
打包器,里面可以按照文件修改時間排序,這樣就知道哪些文件要打包,哪些不用了.
這里先寫一個很簡單的教程,關於這個打包器如何使用的.
大概界面如上圖所示.
注意,在使用這個程序之前要先確認系統變量QUICK_COCOS2DX_ROOT的存在,否則無法運行.
首先選擇你的腳本目錄.
Quick-Cocos2d-x的項目,一般都有一個scripts文件夾,找到這個路徑即可.
然后是包輸出的目錄.這個沒什么多說的了.
前兩個配置好之后單擊"開始掃描",軟件就會自動掃描你給出的路徑,然后羅列出所有的lua文件:
接着,你可以單擊列表的Last Modify Time 來對列表排序.
然后就可以根據時間來判斷哪些是新修改或者增加的lua腳本了.
下面的幾個參數不用多說,包名可以隨便,密鑰也是.簽名一般空白不管就好了,默認是XXTEA.
如果加密密鑰那一欄是空白的,那么打出的包是不會被加密的.
下面的自定義命令是方便某些高手使用,可以自己寫參數進去.會覆蓋掉之前所有的參數.
保存設置,會生成cfg文件將配置保存進去. 在開始編譯和退出程序的時候,程序也會把設置寫到cfg文件里面保存起來,以便下次啟動的時候使用.
參數配置完了之后,在列表里面選中你要加密打包的Lua文件,然后單擊開始編譯即可.
編譯后會顯示結果. 因為我沒做異步處理,所以文件多的話會卡,不過不要擔心,耐心等一下就好了.
現在這個只是初級版本,還有一些東西沒實現,也有一些問題.
比如腳本是否要打包,因為時間不太夠繼續寫,這個功能還未完善所以就先關掉了.其實就是參數問題沒什么難的.
另外編譯結果的回饋,只是簡單地用了MessageBox,如果消息過多可能會顯示不完全. 暫時的方案就是將里面的內容復制出來就好了.
回頭再增加log功能.
這個軟件遵循 WTFPL 協議.
Git地址:https://github.com/NexusEast/QC2dxLua_Packer
===================================================================
EDIT: 好多人說可以通過哈希表來驗證文件,而不是通過時間. 這個可以有! 我在收集一些意見和建議就開始下一個版本吧,
歡迎大家在我博客留言! 另外熱更新方法看這里.我就用的這個方法.
===================================================================