如何用C 做遊戲 3

2021-09-20 05:44:22 字數 4821 閱讀 6323

#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 就這麼一條哦!...