2010-03-02 25 views
0

我已經做了無數的嘗試,以獲得這項工作,但我所做的一切給了我運行時錯誤。我一直在努力讓資產經理爲我的遊戲引擎管理內容,並且我正在使用lua和luabind來處理我的腳本。讓所有東西都可以編譯,綁定類和變量,並且從lua中獲得基本變量到目前爲止一直沒有問題。如何使用Luabind和C++創建資產管理類?

我的問題是我使用std :: vector來存儲我的資產類的實例,並且向量似乎與luabind不相容。我知道我需要這個矢量,因爲我的C++程序將使用它來渲染和其他東西

當我綁定我的經理類和變量(包括包含我的資產類的向量)時,一切都編譯並運行正常。在我的lua腳本中,我可以成功創建新的對象,但是當我嘗試訪問它們時,出現運行時錯誤。

綜上所述一切:

我有適用於遊戲對象或其他的一些數據信息的類。

我有另一個類包含資產類的向量。

當我嘗試像訪問常規lua表一樣訪問此向量時,出現運行時錯誤。

那麼我應該在C++和luabind中做些什麼來允許我修改資產管理器類中的類?

+0

矢量是否包含指向「資產」界面的指針?你有一個包含矢量的類(如Assets或AssetManager)嗎?您可能會更好地暴露包裝資產相關的功能,而不是試圖公開矢量本身。 – 2010-04-08 18:15:28

回答

2

您可能需要將矢量類型本身與一些相關的方法綁定,或者嘗試Luabind的return_stl_iterator,它提供了對STL兼容容器的迭代(但不索引)。

如果您需要更多幫助,您的綁定及其類型的代碼將會很有用。