想必折騰過tolua的都知道, 為了最簡化對lua檔案的支援。最優方案就是 把lua檔案 以檔案的形式載入。而不是用 assetbundle 的方式。這樣會最優化的使用 lua本身的一些檔案 機制。
那麼既然是 以lua檔案的形式 載入肯定不能以 明文的形式了。 tolua已經為我們 提供了 位元組碼加密的機制。
以上就是 tolua 為我們整合 編譯位元組碼的 工具。 對於 tolua 載入 文字的.lua 檔案和 位元組碼的.lua 檔案是沒有區別的。應為tolua底層已經為我們實現了。
目前來看只是有一點不太友好,就是在 ios 平台 armv7 和 arm64 的 位元組碼不能共用。言外之意就是 要麼你編譯兩種位元組碼。要麼你 你直接用明文的 lua 檔案。要麼 你只支援一種 cpu型別。
顯然編譯兩種位元組碼是最優的方案; 對於編譯細節在 luaframework_ugui 已經詳細介紹了
獲取跟多的細節/// /// 適用於 ios arm64
///
///
///
private void encodeluafile_64(string srcfile, string outfile)
",srcfile, outfile);
string currdir = directory.getcurrentdirectory();
directory.setcurrentdirectory(exedir);
system.diagnostics.processstartinfo info = new system.diagnostics.processstartinfo();
info.filename = luaexe;
info.arguments = args;
info.windowstyle = system.diagnostics.processwindowstyle.hidden;
info.useshellexecute = iswin;
info.errordialog = true;
system.diagnostics.process pro = system.diagnostics.process.start(info);
pro.waitforexit();
directory.setcurrentdirectory(currdir);
}/// /// 適用於 ios armv7 所有 android
///
///
///
private void encodeluafile_32(string srcfile, string outfile)
", srcfile, outfile);
string currdir = directory.getcurrentdirectory();
directory.setcurrentdirectory(exedir);
system.diagnostics.processstartinfo info = new system.diagnostics.processstartinfo();
info.filename = luaexe;
info.arguments = args;
info.windowstyle = system.diagnostics.processwindowstyle.hidden;
info.useshellexecute = iswin;
info.errordialog = true;
system.diagnostics.process pro = system.diagnostics.process.start(info);
pro.waitforexit();
directory.setcurrentdirectory(currdir);
}
現在我們已經編譯出來了 不同的 lua 位元組碼: 經過反覆測試我得到 一下結論
用 luajit64.exe 編譯出來的位元組碼 只適用於 ios arm64,
用 luajit32.exe 編譯出來的位元組碼 只適用於 其他( ios armv7, android )
有意思的 android 目前 不管 armv7 還是 arm64 都只能使用 luajit32.exe 編譯出來的位元組碼
別人總結的:
2023年8月22日 補充:
其實對於位元組碼的理解應該是這樣的: 32位和64位的 位元組碼是對應的 目標機器,即 32位機器和64位機器。 很顯然tolua 已經為我們實現了 32位和64的 不同位元組碼的支援!。
所以呢我們只要為 相應的目標平台提供 對應的位元組碼就好了!
這是我最初的方案! 統計所有的機型 來判斷 是32還是64! 現在看來 很漏記!
往下看:
這個是是我找到的 最新的方案private static listdevicetypes = new list()
;public class devicetype
}
我已經在各個平台上測試了,都能準確分析出當前的 cpu結構!包括在編輯器 模式下/// /// 判斷當然 執行 品台是 x86 還是 x68_x64
///
public static bool isx86_x64
else}}
所以呢 我們就理所當然的 為我們的 目標平台提供對應的 位元組碼了
Dust3D 3D 建模工具
dust3d 是乙個 開源建模工具,可以用它快速建立 low poly 模型,用於遊戲製作 動畫製作以及 3d 列印模型製作,既適合有經驗的模型師建立雕刻前的基礎模型,也適合像作者這樣的新手 會一點點 blender 製作低面遊戲模型。目前已經完成建模 骨骼繫結自動生成 貼圖自動展開 環境光遮蔽自動...
D3D基本框架 即D3D標頭檔案分類
了dxut的結構 後,發現微軟程式設計師的編碼風格太深奧了。各種巨集定義 預編譯跳得頭暈,由於對於window api的不精通,導致寫出符合dxut風格的框架以現在的水平來看是不可能的。既然沒有弄通dxut,我也暫時不想套用了,那麼還是先自己用自己的框架來寫把。框架如下 雖然沒學會dxut,但是微軟...
d3d矩陣變換
1.d3d的繪製流水線 區域性座標系 模型空間 世界座標系 觀察座標系 背面消隱 光照 裁剪 投影 視口變化 光柵化 每個3d模型都有自己的空間,空間的中心 原點 就是模型的中心。世界空間就是物體 模型 存在的地方。世界的中心就是原點 0,0,0 注意螢幕中間的那一點不是世界空間的中心點,螢幕中間的...