所以最近,我在我的C++引擎中實現了lua腳本,並且爲我所有的類(Window,InputHandler,Mesh,Shader,等等...)。但是現在我想到了,將所有C++類包裝到lua類中是否好呢?我不應該使用lua腳本來處理更具體的事情,並且使用C++編寫窗口管理代碼?這是一個盧阿樣本:當你應該使用lua腳本,並且不應該使用
local input = alpha.InputHandler()
local window = alpha.Window(100, 100, 1000, 900, "Hello Gangnam Style !", false, false)
function main()
repeat
window:Clear(0.5, 0.5, 0.5, 1)
window:SwapBuffers()
input:Update()
until input:CloseRequested() == true
end
main()
這是一個恥辱,這個問題確實太廣泛了,而且基於觀點,所以它不適合SO。然而,這裏有一個觀點:是的,我認爲你對Lua的評價太過分了:p //當你整合一種腳本語言時,最初的平衡是「C++中的引擎,剩下的就是Lua」。例如,你的主循環,你的物理引擎等應該是C++,而在你的平臺遊戲中的一個槓桿行爲是一個很好的腳本候選人。如果您完全可以表達您的腳本而不關心引擎的外觀,那麼您已經完美實現了它。 – Quentin
將類X暴露給Lua是否有利/有必要?如果是的話,包裝它,如果沒有,那麼不要。它應該是一個沙箱,具有明確的範圍。 –
所以,你想讓我們解釋你,你爲什麼要這樣做? =)實際上,它取決於你(你正在處理的任務),你是否應該用Lua包裝任何東西,以及如何使用腳本。如果您將更新整個用戶界面結構,並且不希望在每次發生應用程序時重新編譯應用程序 - 您的決定將會執行。 –