學(xué)lua必須先學(xué)c語(yǔ)言嗎 lua腳本怎么寫(xiě)出來(lái)一個(gè)自動(dòng)點(diǎn)開(kāi)某程序功能的代碼?
lua腳本怎么寫(xiě)出來(lái)一個(gè)自動(dòng)點(diǎn)開(kāi)某程序功能的代碼?代碼如下:RET=npcdialog(“Hello pitch”)如果RET==OK,則打?。ā癘K”)結(jié)束對(duì)于計(jì)劃,npcdialog應(yīng)該被阻止。否
lua腳本怎么寫(xiě)出來(lái)一個(gè)自動(dòng)點(diǎn)開(kāi)某程序功能的代碼?
代碼如下:
RET=npcdialog(“Hello pitch”)
如果RET==OK,則打?。ā癘K”)結(jié)束
對(duì)于計(jì)劃,npcdialog應(yīng)該被阻止。否則,除非您操作此對(duì)話(huà)框并單擊“確定”或關(guān)閉它,否則函數(shù)將不會(huì)返回。對(duì)于宿主程序C,如何實(shí)現(xiàn)這個(gè)功能?
static int do_uunpc_uu2;dialog(lua_uu2;State*L)
{
const char*content=lua_u2;tostring(L,-1)
lua_2;Pushnumber(return)
return 1
}
Internet上的許多l(xiāng)ua示例,包括所謂的OOP實(shí)現(xiàn)示例,都是偽裝成lua的C/C#/Java/OC代碼。這是一個(gè)非常積極的事情,業(yè)主可以關(guān)心真正的盧阿寫(xiě)作。面向?qū)ο蟮暮诵氖鞘裁矗糠庋b、繼承和多態(tài)性。Lua的表可以封裝。可以說(shuō)表是一個(gè)對(duì)象。繼承的本質(zhì)是代碼重用。Lua的解決方案是使用metatable。當(dāng)需要繼承時(shí),可以直接設(shè)置metatable。如果你采用一個(gè)更激進(jìn)的概念,繼承可以被放棄。多次調(diào)用函數(shù)是件大事。至于多態(tài)性,duck類(lèi)型的語(yǔ)言天生就是多態(tài)的。因此,您不需要聲明類(lèi),也不需要學(xué)習(xí)這些示例,編寫(xiě)一個(gè)類(lèi)函數(shù),編寫(xiě)一個(gè)新函數(shù)(以及extend、private、public、ctor……),然后認(rèn)真地去new并做一些事情—只需使用Lua的本機(jī)機(jī)制。