青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 132  文章 - 51  trackbacks - 0
<2014年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(7)

隨筆分類

隨筆檔案

文章分類

文章檔案

cocos2d-x

OGRE

OPenGL

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

    想在我的項目中使用Lua腳本語言。最初知道Lua是通過CEGUI,后來因為一些原因不打算使用CEGUI了,只好單獨使用Lua。在網(wǎng)上看到LuaPlus,貌似比較簡單。在此記錄學習過程。
    可以到這里http://luaplus.org/tiki-index.php?page=LuaPlus+Home+Page下載LuaPlus的win32二進制文件和源碼包。從源碼包提取頭文件,從二進制包提取DLL文件。
    LuaPlus對Lua做了修改和封裝,使得Lua和C++的交互更為簡單。可以從上面的鏈接找到它的介紹。

    先簡單的做兩個測試:(1)從C++中調(diào)用Lua腳本中的函數(shù);(2)從Lua腳本中調(diào)用C++里的函數(shù)。

    一、工程配置

    VC7.1中新建win32控制臺工程TestLuaPlusLib。

    解決方案視圖中右鍵點擊TestLuaPlusLib,選屬性;配置組合框選“所有配置”;依次點擊“配置屬性”、“C/C++”、“常規(guī)”,在附加包含目錄里添加源碼解壓后所在的路徑(我的:E:/sources/LuaPlus/LuaPlus51_Build1100/Src/LuaPlus);依次點擊“連接器”、“常規(guī)”,在附加庫目錄中添加二進制包解壓后所在的路徑(我的:E:/sources/LuaPlus/LuaPlus51_Build1100_Win32/Lib/win32)。

    在TestLuaPlusLib.cpp中加入如下幾行代碼,將頭文件和庫文件加入進來。

    #include "luaplus.h"
    
#if defined(DEBUG) || defined(_DEBUG)
    
#pragma comment(lib, "LuaPlusD_1100.lib")
    
#else
    
#pragma comment(lib, "LuaPlus_1100.lib")
    
#endif
    
using namespace LuaPlus;

    工程配置基本上完成了。
    

   二、測試用Lua腳本

    如下建立測試用的Lua腳本并保存在你即將生成的可執(zhí)行文件所在的目錄下。同時需要把二進制包中的LuaPlusD_1100.dll和LuaPlus_1100.dll拷貝到該目錄下。
    health = 100;

    PrintNumber(
30);
 
    function Add(x, y)
        
return x + y;
    end

    health = 100;Lua腳本中的全局變量,可以被C++文件訪問。
    PrintNumber(30);該語句調(diào)用C++文件中的函數(shù),打印數(shù)字到控制臺窗口。
    function Add(x,y)聲明一個函數(shù),C++文件會找到并調(diào)用此函數(shù)。

    三、C++實現(xiàn)

    在TestLuaPlusLib.cpp中加入下面兩個函數(shù)。
static int PrintLSNumber(LuaState* state)
{
    LuaStack args(state);

    
// Verify it is a number and print it.
    if (args[1].IsNumber()) {
        printf(
"%f ", args[1].GetNumber());
    }

    
// No return values.
    return 0;
}



void test() 
{
    
//Create state
    LuaStateOwner state;

    
//With this the script can access our own C++ functions:
    state->GetGlobals().Register("PrintNumber", PrintLSNumber);

    
//Open test file:
    int iret = state->DoFile("test.lua");

     
//Get a global variable:
    LuaObject sObj = state->GetGlobal("health");
    
int mytest = sObj.GetInteger();
    printf(
"init value in luascript:%d ", mytest);

    
//Update the value:
    sObj.AssignInteger(state, 50);
    
//Get value again:
    mytest = sObj.GetInteger();
    printf(
"after changed by c++:%d ", mytest);

    
//Call a function in lua:
    LuaFunction<int> Add =  state->GetGlobal("Add");
    
int myret = Add(34);
    printf(
"Call add() in luascript,ret=%d ", myret);

}


    main函數(shù):
int _tmain(int argc, _TCHAR* argv[])
{
    test();
    
return 0;
}
 
    現(xiàn)在可以編譯了,編譯完成之后運行,可以在控制臺窗口中看到結(jié)果。
    需要注意的是執(zhí)行腳本要在注冊C++函數(shù)到Lua模塊之后進行。
    基本上是按照http://gpwiki.org/index.php/Scripting_with_LuaPlus_and_Cpp來做的,加入了工程設(shè)置部分。該鏈接的代碼(test函數(shù))會報錯(調(diào)用了math庫中的cos函數(shù),但是沒有調(diào)用OpenLibs()函數(shù)),我修改了一下,去掉了對math庫的引用。

   相關(guān)資源鏈接:

    1>LuaPlus的文檔:http://www.gamedev.net/reference/programming/features/lua/
    2>LuaPlus初級教程:http://wwhiz.com/LuaPlus/LuaPlus.html
posted on 2011-07-18 10:07 風輕云淡 閱讀(825) 評論(0)  編輯 收藏 引用 所屬分類: LuaPlus
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品一区二区你懂得| 亚洲视频免费在线观看| 亚洲国内精品| 久久国产精品99国产精| 看片网站欧美日韩| 亚洲国产乱码最新视频| 91久久久在线| 亚洲国产精品一区二区三区| 久久久亚洲国产美女国产盗摄| 国产欧美日韩一区| 久久久久久97三级| 亚洲一区二区黄色| 欧美另类女人| 亚洲国产精品综合| 久久综合网hezyo| 亚洲欧美激情精品一区二区| 久久久久久久一区| 久久久国产精品一区二区三区| 亚洲国产精品久久人人爱蜜臀| 日韩视频免费看| 国产免费一区二区三区香蕉精| 亚洲成色精品| 亚洲精品免费一二三区| 亚洲性图久久| 欧美高清视频www夜色资源网| 欧美视频在线看| 一区在线观看| 欧美亚洲综合在线| 亚洲国产精品999| 亚洲综合精品| 欧美日韩18| 樱花yy私人影院亚洲| 亚洲一区二区三区午夜| 免费在线成人av| 亚洲在线一区二区三区| 蜜臀a∨国产成人精品| 国产伦精品一区| 中文精品视频| 亚洲福利视频网站| 性欧美1819性猛交| 欧美吻胸吃奶大尺度电影| 影音先锋欧美精品| 欧美在线网址| 亚洲最快最全在线视频| 快射av在线播放一区| 国产精品资源| 亚洲欧美成人一区二区三区| 亚洲国产aⅴ天堂久久| 午夜亚洲性色福利视频| 亚洲毛片一区| 最新高清无码专区| 久久精品国产亚洲a| 欧美性大战久久久久| 亚洲青色在线| 欧美承认网站| 久久久精品五月天| 韩国精品一区二区三区| 久久精品国产久精国产爱| 亚洲素人一区二区| 国产精品v欧美精品v日本精品动漫| 亚洲人成免费| 欧美激情一区二区三区成人| 久久亚裔精品欧美| 亚洲福利久久| 亚洲国产日韩欧美一区二区三区| 久久久久久亚洲综合影院红桃 | 久久人人97超碰精品888| 国产私拍一区| 久久久午夜电影| 久久精品综合网| 亚洲电影免费观看高清完整版在线观看 | 欧美激情综合| 99视频一区二区三区| 亚洲激情影视| 欧美日韩精品在线视频| 亚洲视频电影图片偷拍一区| 日韩午夜剧场| 国产丝袜一区二区| 免费在线欧美视频| 欧美极品一区二区三区| 99亚洲伊人久久精品影院红桃| 亚洲日本一区二区| 欧美午夜影院| 久久视频在线视频| 欧美91大片| 亚洲制服av| 久久精品亚洲乱码伦伦中文| 在线欧美福利| 9l视频自拍蝌蚪9l视频成人 | 亚洲高清视频在线| 亚洲日本欧美| 国产精品中文字幕欧美| 免费视频一区| 国产精品久久久久9999吃药| 久久久亚洲午夜电影| 欧美成人中文字幕在线| 亚洲欧美精品在线| 久久久久久噜噜噜久久久精品| 日韩亚洲一区在线播放| 亚洲国产精品va在线观看黑人| 欧美一级视频免费在线观看| 亚洲午夜电影网| 国产一区二区成人久久免费影院| 美女图片一区二区| 国产精品国产自产拍高清av| 久久一日本道色综合久久| 欧美日韩国产三区| 久久性天堂网| 国产精品v欧美精品v日韩| 欧美激情国产日韩| 国产一区二区三区av电影| 99精品欧美一区二区三区| 在线免费高清一区二区三区| 亚洲女人天堂成人av在线| 日韩视频在线观看免费| 久久久999国产| 性做久久久久久久免费看| 欧美日韩国产123区| 欧美国产日韩在线观看| 狠狠色综合播放一区二区| 亚洲综合第一| 午夜精品久久久久久久男人的天堂| 六月丁香综合| 久久综合久久久久88| 国产欧美日韩精品一区| 一区二区激情视频| 99国产精品99久久久久久| 可以免费看不卡的av网站| 老色鬼久久亚洲一区二区| 国产亚洲制服色| 欧美一区二区黄| 欧美影视一区| 国产精品视频yy9099| 99伊人成综合| 亚洲尤物在线视频观看| 欧美午夜免费电影| 一区二区三区高清在线| 在线视频精品| 欧美日韩国产123| 一本色道88久久加勒比精品| 亚洲精品免费一二三区| 久久综合五月| 亚洲电影激情视频网站| 91久久中文字幕| 欧美极品在线视频| 99热在这里有精品免费| 亚洲在线观看视频| 国产精品一区二区三区四区五区| 亚洲视频免费在线| 久久成人精品电影| 国产日韩精品一区| 欧美一区二区观看视频| 久热国产精品| 91久久一区二区| 欧美日韩国产色站一区二区三区| 亚洲免费电影在线| 香蕉av777xxx色综合一区| 国产亚洲欧美日韩精品| 久久精品一区蜜桃臀影院| 欧美激情在线免费观看| 99精品久久久| 国产精品视频福利| 老司机精品视频一区二区三区| 欧美黄网免费在线观看| 亚洲视频在线观看| 红桃视频一区| 欧美日本高清视频| 欧美一二三区精品| 欧美高清日韩| 亚洲国产成人精品视频| 亚洲国产精品美女| 欧美三级电影一区| 欧美在线免费播放| 亚洲日本欧美| 久久免费国产精品| 一区二区三区鲁丝不卡| 国产精品综合网站| 免费在线观看成人av| 一区二区欧美视频| 免播放器亚洲| 亚洲午夜免费福利视频| 韩国av一区二区三区四区| 欧美人与性动交cc0o| 久久久噜噜噜久久久| 一区二区三区高清在线观看| 欧美电影在线| 欧美一区二区在线免费观看| 91久久精品国产| 国产欧美日韩一区二区三区在线观看 | 久久久蜜桃精品| 一本久道久久久| 国内精品久久久久久久97牛牛| 欧美日韩亚洲网| 久久夜精品va视频免费观看| 亚洲香蕉在线观看| 最新亚洲视频| 欧美国产视频一区二区| 久久天天躁狠狠躁夜夜爽蜜月| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 欧美香蕉视频|