我看了很多來源,我只是不明白他們。大多數情況下,他們都使用像luaBind這樣的庫(我不想使用它,因爲它依賴於Boost),或者它們不是C++中的實例化對象,而是直接在Lua中創建的。在Lua 5.2中返回一個C++對象的實例?
我有一個Player類,它被包裝在另一個類來處理Lua調用。我在應用程序的初始化過程中創建了這兩個對象的std :: vector列表。
所以基本上我不想讓Lua腳本創建這些播放器對象,我只想創建一個函數getPlayer()
然後返回Lua包裝的對象。我不知道從哪裏開始爲Lua定義Lua包裝對象來調用,也不知道如何將對象的實例返回給Lua,以便我可以使用它的調用。
這裏是什麼,我想我的Lua中看起來像一個例子:
player = getPlayer(1) -- Returns the Lua wrapped object from C++ where 1 is the object's index in the std::vector list
print("Player's name: ", player:name()) -- Print's the player's name
可能有人點我一個體面的教程,說明如何做到這一點。我非常肯定,這不是某種「從未做過,爲什麼你會想要」的情況下,肯定至少必須有一個教程。我一直在尋找大約2天,沒有積極的結果。
LuaBridge對Boost沒有依賴性。它的手冊解釋了很多關於Lua和C++之間共享對象的生命週期的缺陷 –