#ifndef _test_h
#define _test_h
class ctest
; #endif
char* ctest::getdata()
void ctest::setdata(const
char* pdata)
static
inttolua_new_ctest
(lua_state* pstate)
static
inttolua_delete_ctest
(lua_state* pstate)
return
1; }
static
inttolua_setdata_ctest
(lua_state* pstate)
return
1; }
static
inttolua_getdata_ctest
(lua_state* pstate)
return
1; }
tolua_pushusertype(pstate, ptest, 「ctest」)
;
,ctest* ptest = (ctest* )tolua_tousertype(pstate, 1, 0);是將資料棧下的物件以(ctest* )
bool cluafn::initclass()
tolua_open(m_pstate);
tolua_module(m_pstate, null, 0);
tolua_beginmodule(m_pstate, null);
tolua_usertype(m_pstate, 「ctest」);
tolua_cclass(m_pstate, 「ctest」, 「ctest」, 「」, tolua_delete_ctest);
tolua_beginmodule(m_pstate, 「ctest」);
tolua_function(m_pstate, 「new」, tolua_new_ctest);
tolua_function(m_pstate, 「setdata」, tolua_setdata_ctest);
tolua_function(m_pstate, 「getdata」, tolua_getdata_ctest);
tolua_endmodule(m_pstate);
tolua_endmodule(m_pstate);
return
true
; }
tolua_function(m_pstate, 「setdata」, tolua_setdata_ctest);
function func_add(x, y)
local
test = ctest:new();
test:setdata(「i』m freeeyes!」);
test:getdata();
return x..y;
end
int _tmain(int argc, _tchar* ar**)
; sprintf(szdata1, 「[freeeyes]「);
_paramdata* pparam1 = new _paramdata(szdata1, 「string」, (int)strlen(szdata1));
paramin.push(pparam1);
char szdata2[20] = ;
sprintf(szdata2, 「[shiqiang]「);
_paramdata* pparam2 = new _paramdata(szdata2, 「string」, (int)strlen(szdata2));
paramin.push(pparam2);
char szdata3[40] = ;
_paramdata* pparam3 = new _paramdata(szdata3, 「string」, 40);
paramout.push(pparam3);
luafn.callfilefn(「func_add」, paramin, paramout);
char* pdata = (char* )paramout.getparam(0)->getparam();
printf(「[main]sum = %s./n」, pdata);
getchar();
return
0; }
[ctest::getdata]i』m freeeyes!.
[main]sum = [freeeyes][shiqiang].
function
func_add
(x, y, f)
f:setdata
(「i』m freeeyes!」)
; f:getdata();
return x..y;
end
// luasample.cpp : 定義控制台應用程式的入口點。
//#include 「stdafx.h」
#include 「luafn.h」
int _tmain(int argc, _tchar* ar**)
; sprintf(szdata1, 「[freeeyes]「);
_paramdata* pparam1 = new _paramdata(szdata1, 「string」, (int)strlen(szdata1));
paramin.push(pparam1);
char szdata2[20] = ;
sprintf(szdata2, 「[shiqiang]「);
_paramdata* pparam2 = new _paramdata(szdata2, 「string」, (int)strlen(szdata2));
paramin.push(pparam2);
//只追加了這裡
ctest* ptest = new ctest();
_paramdata* pparam3 = new _paramdata(ptest, 「ctest」, sizeof(ctest));
paramin.push(pparam3);
//追加結束
char szdata4[40] = ;
_paramdata* pparam4 = new _paramdata(szdata4, 「string」, 40);
paramout.push(pparam4);
luafn.callfilefn(「func_add」, paramin, paramout);
char* pdata = (char* )paramout.getparam(0)->getparam();
printf(「[main]sum = %s./n」, pdata);
getchar();
return
0; }
int _tmain(int argc, _tchar* ar**)
; sprintf(szdata1, 「[freeeyes]「);
_paramdata* pparam1 = new _paramdata(szdata1, 「string」, (int)strlen(szdata1));
paramin.push(pparam1);
char szdata2[20] = ;
sprintf(szdata2, 「[shiqiang]「);
_paramdata* pparam2 = new _paramdata(szdata2, 「string」, (int)strlen(szdata2));
paramin.push(pparam2);
ctest* ptest = new ctest();
_paramdata* pparam3 = new _paramdata(ptest, 「ctest」, sizeof(ctest));
paramin.push(pparam3);
ctest* ptestrsult = null;
_paramdata* pparam4 = new _paramdata(ptestrsult, 「ctest」, sizeof(ptestrsult));
paramout.push(pparam4);
luafn.callfilefn(「func_add」, paramin, paramout);
//接受lua返回引數為ctest型別,並呼叫其中的方法。
ptestrsult = (ctest* )paramout.getparam(0)->getparam();
ptestrsult->getdata();
getchar();
return
0; }
tolua_cclass(tolua_s, 「ccmdtarget」, 」ccmdtarget」, 」cobject」, null);
tolua_constant(tolua_s, 「es_autohscroll」, es_autohscroll);
如何用C 做遊戲 2
lua pushnumber m pstate,11 lua pushnumber m pstate,12 int nin lua gettop m pstate 這裡加了一行,lua gettop 這個api是告訴你目前棧裡元素的個數。如果僅僅是push兩個引數,那麼nin的數值是2,對。沒錯。那...
如何用區塊鏈技術做遊戲?
很多人或多或少都聽過區塊鏈遊戲,目前區塊鏈最火爆的遊戲莫過於fomo3d遊戲 賓果四神獸 寵物養成 以及虛擬遊戲和農場類遊戲,而各種區塊鏈遊戲紛紛爆出收入幾千萬的訊息,也讓許多人都為之側目,覺得不可思議。悄然之間,區塊鏈遊戲已經成為了整個遊戲行業的熱門話題,與此同時也有很多人在觀望。如何用區塊鏈技術...
如何用css3做openLayers3的閃爍效果
最近在做地圖上的乙個故障指示器,要求有故障時,此指示器會呈現不同的展現樣式,用閃爍最好了!但openlayers3中沒有閃爍的效果,所以就借助css3的動畫效果了,反正openlayers3也是使用了h5 css的,它們通用。最終的效果是 第一步 在你的地圖html檔案中加乙個div 就這麼一條哦!...