There is no end, it is just the beginning! - A Game Developer's Notes
在使用toLua重構(gòu)腳本系統(tǒng)時(shí),遇到了一些問題,在此將其解決方案做一下備忘。一、How to complie 在linux下只需簡(jiǎn)單地執(zhí)行make即可。而在windows平臺(tái)下,情況會(huì)稍微復(fù)雜點(diǎn)。由于toLua的產(chǎn)出分為exe和lib,其中exe用于自動(dòng)產(chǎn)生bind代碼,lib作為腳本系統(tǒng)的連接庫(kù)使用。為了產(chǎn)生exe文件,需要?jiǎng)?chuàng)建一個(gè)win32 console工程,將src\lib和src\bin的.h、.c添加到這個(gè)工程中來,然后編譯(當(dāng)然別忘了設(shè)置鏈接lua庫(kù));而產(chǎn)生lib,則需要?jiǎng)?chuàng)建static lib工程,然后將src\lib下的source添加進(jìn)來編譯(同樣別忘了設(shè)置鏈接lua庫(kù))。二、How to use(How to transplant) 在src\tests下有示例代碼,其中.pkg文件內(nèi)容與header file幾乎一致,只是多了toLua處理指令(以$開頭),其詳細(xì)說明可參考“tolua++ - Reference Manual”。為了避免將眾多的header files內(nèi)容復(fù)制到.pkg,我們使用了$cfile指令,這樣只需在每個(gè)需要導(dǎo)出到lua中的頭文件所對(duì)應(yīng)的.pkg文件中添加一條$cfile指令即可,但世上沒有免費(fèi)的午餐,這樣做有個(gè)前提:需要在頭文件中添加導(dǎo)出指示符(以注釋方式給出)。需要注意的是:1).pkg文件必須以一個(gè)新行結(jié)束文件;2)使用導(dǎo)出指示符時(shí),//tolua_export需位于類名繼承關(guān)系之后。對(duì)于導(dǎo)出單個(gè)或少數(shù)方法,需要在方法聲明前加//tolua_begin,結(jié)束加//tolua_end。對(duì)于如果//tolua_end不在類定義最后(即};之后)的情況,需在類定義最后加//tolua_export;3)如需在腳本中生成對(duì)象,則需導(dǎo)出構(gòu)造和析構(gòu)函數(shù)。下面舉具體例子加以說明:
_Test.h和_Test.cpp是用ToLua -o _Test.cpp -H _Test.h Test.pkg命令產(chǎn)生的。
補(bǔ)充:針對(duì)在腳本中使用已經(jīng)創(chuàng)建好的C++對(duì)象,需要使用tolua_pushusertype和lua_setglobal。在上面例子中,如果只想在腳本中調(diào)用指定對(duì)象的GG方法,則只需用tolua_begin和tolua_end來包括GG(),然后修改main.cpp和腳本:
三、How to automatize
Visual studio為每個(gè)工程提供了配置“Pre-Build Event”、“Pre-Link Event”以及“Post-Build Event”的機(jī)會(huì),她位于工程屬性的“Build Events”條目中。為了在每次編譯前,自動(dòng)產(chǎn)生lua綁定的相關(guān)代碼,可在“Command Line”中寫下我們?cè)诿钚兄休斎氲膖oLua命令。
posted on 2009-01-18 13:56 Heath 閱讀(2094) 評(píng)論(2) 編輯 收藏 引用 所屬分類: Script Programming
這媞 久久人人爽人人澡人人高潮AV| 精品久久久久久久久久久久久久久 | 久久久久久久久久久| 亚洲精品无码久久久久| 久久综合九色综合97_久久久 | 无码专区久久综合久中文字幕| 久久精品国产亚洲网站| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 伊人久久大香线蕉综合5g| 97久久精品午夜一区二区| 亚洲国产精品综合久久网络 | 久久精品国产精品亜洲毛片| 久久久国产乱子伦精品作者| 久久一区二区三区免费| 精品无码久久久久久尤物| 久久久久亚洲国产| 精品久久久久国产免费| 一本伊大人香蕉久久网手机| 亚洲精品无码久久千人斩| 色婷婷噜噜久久国产精品12p| 久久福利青草精品资源站| 中文字幕乱码久久午夜| 久久婷婷五月综合国产尤物app| 久久国产高清一区二区三区| 久久久久久综合一区中文字幕| 日韩精品久久久肉伦网站| 久久无码AV一区二区三区| 99久久精品免费看国产| 精品一区二区久久| 久久99国产精品久久99| 国产情侣久久久久aⅴ免费| 蜜臀av性久久久久蜜臀aⅴ麻豆| 久久久久久精品免费看SSS| 亚洲国产日韩欧美久久| 日韩美女18网站久久精品| 精品99久久aaa一级毛片| 91亚洲国产成人久久精品| 精品久久久久久无码免费| 久久国产精品视频| 开心久久婷婷综合中文字幕| 久久精品成人免费国产片小草|