摘要:
如果你看了LUA的文檔,那么就應該很清楚LUA與C交互數據時都是用到LUA中所謂的stack。那么當我調用lua_open函數之后棧是什么樣的呢?空的(luaopen_base等會往棧上加進一些東西)。那么至于如何操作棧上的數據,我想官方文檔上已經說得很清楚了,不過最初我對于棧的順序有一些迷糊,所以就說說這個。現在假如我有如下的一段代碼:代碼:lua_State* L = lua_open();lua_pushnumber( L, 211 );lua_pushnumber( L, 2222 );lua_newtable( L );lua_close( L );那么當執行完lua_newtabl 閱讀全文
posted @ 2013-12-16 16:58
健忘豬
閱讀(6440)
評論(2)
推薦(0)
摘要:
——本文一個例子展開,介紹Linux下面線程的操作、多線程的同步和互斥。前言線程?為什么有了進程還需要線程呢,他們有什么區別?使用線程有什么優勢呢?還有多線程編程的一些細節問題,如線程之間怎樣同步、互斥,這些東西將在本文中介紹。我在某QQ群里見到這樣一道面試題:是否熟悉POSIX多線程編程技術?如熟悉,編寫程序完成如下功能:1)有一int型全局變量g_Flag初始值為0;2) 在主線稱中起動線程1,打印“this is thread1”,并將g_Flag設置為13) 在主線稱中啟動線程2,打印“this is thread2”,并將g_Flag設置為24) 線程序1需要在線程2退出后才能退出5 閱讀全文
posted @ 2013-12-16 15:50
健忘豬
閱讀(505)
評論(1)
推薦(0)
摘要:
項目正在使用cocos2dx的lua綁定,綁定的方式是tolua++。對大規模使用lua代碼信心不是很足,花了一些時間閱讀tolua++的代碼,希望對綁定實現的了解,有助于項目對lua代碼的把控。從閱讀結果上來看,起碼在內存管理上,幫助還是很大的。1.tolua++如何將c++對象導入到lua里tolua++為每一個傳入lua的對象建立一個userdata,userdata的值,是c++對象的地址。userdata的metatable,是一個tolua++建立的,記錄了userdata對應c++類型信息的表格,包括導出的成員變量、成員函數等信息。對于成員變量的讀取賦值,tolua++是在met 閱讀全文
posted @ 2013-12-16 15:49
健忘豬
閱讀(1878)
評論(0)
推薦(0)
摘要:
一、cocos2dx對tolua++綁定的修正A.c對lua回調函數的引用在使用cocos2dx編寫游戲時,我們經常會設置一些回調函數(時鐘、菜單選擇等)。如果采用腳本方式編寫游戲的話,這些回調函數也是需要寫在腳本里的。實現這個功能,就需要lua將自己的函數傳遞給c++,c++保持對這個函數的引用,不要讓這個lua函數被垃圾回收,并在適當的時候回調這個lua函數。這種需求的一般抽象是在C環境下保存lua狀態,在PIL(Programming In Lua)里有比較詳盡的描述。可以使用luaL_ref函數,將一個luaValue(function、table等沒有直接對應c類型的數據)存儲到LU 閱讀全文
posted @ 2013-12-16 15:41
健忘豬
閱讀(2316)
評論(0)
推薦(0)
摘要:
一、下載cocos2d-xhttp://cocos2d-x.org/projects/cocos2d-x/wiki/Downloadcocos2d-x-2.1.4.zip @ June.18, 2013我們可以看到最新版本的2.1.4,這個版本提供了一個用python命令來建立各平臺的項目,十分便利下載,解壓(建議解壓到主目錄下的)二、下載pythonhttp://www.python.org/getit/建議選擇2.7.5版本的下載Python 2.7.5 Mac OS X 64-bit/32-bit x86-64/i386 InstallerPython 2.7.5 Mac OS X 32 閱讀全文
posted @ 2013-12-16 14:36
健忘豬
閱讀(784)
評論(0)
推薦(0)
摘要:
導出 C/C++ API 給 Lua 使用cocos2d-x 和 quick-cocos2d-x 的底層代碼都是使用 C++ 語言開發的。為了使用 Lua 腳本語言進行開發,我們利用tolua++工具,將大量的 C/C++ API 導出到了 Lua 中。使用 tolua++ 的基本步驟:從 C/C++ 源代碼復制頭文件的內容到 .tolua(tolua++ 文檔中稱為 .pkg)文件中。修改 .tolua 文件內容,去掉 tolua++ 無法識別的內容,以及不需要導出到 Lua 的定義。運行 tolua++ 工具,根據 .tolua 文件生成 luabinding 接口文件(由 .cpp 文件 閱讀全文
posted @ 2013-12-16 11:51
健忘豬
閱讀(2554)
評論(0)
推薦(0)

浙公網安備 33010602011771號