Quick-Cocos2d-x 3.3綁定自定義類至Lua(四)使用綁定C++至Lua的自定義類

【綁定自定義類至Lua】(三)動手綁定自定義類至Lua動手綁定自定義類至Lua 之後,我們已經完成了自定義類至Lua的綁定。在接下來的環節,我們將使用它。

首先,我們需要確定,通過Python腳本我們生成了哪些綁定文件?我們羅列一個表單。

1
2
3
4
5
6
7
8
// Path : F:\Cocos2dx-Lua\Garfield\frameworks\cocos2d-x\cocos\scripting\lua-bindings\auto    
    1. lua_pet_auto.hpp
    // Path : F:\Cocos2dx-Lua\Garfield\frameworks\cocos2d-x\cocos\scripting\lua-bindings\auto
    2. lua_pet_auto.cpp
    // Path : F:\Cocos2dx-Lua\Garfield\frameworks\cocos2d-x\cocos\scripting\lua-bindings\auto\api
   3. lua_pet_auto_api.lua
    // Path : F:\Cocos2dx-Lua\Garfield\frameworks\cocos2d-x\cocos\scripting\lua-bindings\auto\api
    4. Pet.lua

檢查這些文件是否在你的項目當中相對的路徑。(F:\Cocos2dx-Lua\Garfield 這是我的示例項目所在路徑)。

一切無誤的話,我們使用VS2013將"Garfield.sln"工程文件打開。我們將在"libluacocos2d\auto"中引入"lua_pet_auto.hpp"、"lua_pet_auto.cpp"。這兩個文件聲明及定義"register_all_custom_pet()"全局函數,用於完成對C++綁定類的註冊,完成類中成員屬性及成員函數向Lua的"注入",實現C++類結構至Lua的"解析"。"register_all_custom_pet()"函數我們一會將用到。

1.jpg

2.jpg

檢查第三章節中我們創建的"Pet"類文件是否已經正確引入到VS2013工程中。

3.jpg

完成這些文件的引入之後,我們將在引擎入口協議類"AppDelegate"調用"register_all_custom_pet()"函數來完成綁定類在該項目的註冊。

1. 引入" #include "lua_pet_auto.hpp" 頭文件; ( " register_all_custom_pet() " 定義於該文件中)

2. 調用 "register_all_custom_pet()" 。

4.jpg

接下來,我們可以在Quick-Cocos2d-x項目中使用該"Pet"了。我將在Cocos Code IDE中編寫我的腳本程序,該腳本代碼中使用了由C++定義的類Pet。如下:

5.jpg

回到VS2013工程,運行項目。
如果你碰到諸如“打開vs工程導入lua_pet_auto.cpp 和lua_pet_auto.hpp ,lua_pet_auto.cpp中報錯說找不到pet.h 文件 編譯報錯說..\auto\lua_pet_auto.cpp(2): fatal error C1083: 無法打開包括文件:“Pet.h”: No such file or directory”這樣的錯誤,請參照下面的截圖,在VS中填加Class的包含路徑。

1.jpg

6.jpg

寫在最後,爲了希望可以儘量幫助看到該篇博文的讀者,筆者盡力將每個環節都進行了詳細的截圖和說明,難免會略有贅述。同時小心翼翼的驗證每個環節,但難免有紕漏之處,如果你在閱讀的過程中發現問題,可與我聯繫,非常樂意與你交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章