lua面向对象的理解与实现过程

lua面向对象的理解与实现过程,第1张

Lua 面向对象

面向对象编程(Object Oriented Programming,OOP)是一种非常流行的计算机编程架构。

以下几种编程语言都支持面向对象编程:

C++

Java

Objective-C

Smalltalk

C#

Ruby

面向对象特征

1) 封装:指能够把一个实体的信息、功能、响应都装入一个单独的对象中的特性。

2) 继承:继承的方法允许在不改动原程序的基础上对其进行扩充,这样使得原功能得以保存,而新功能也得以扩展。这有利于减少重复编码,提高软件的开发效率。

3) 多态:同一 *** 作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。

4)抽象:抽象(Abstraction)是简化复杂的现实问题的途径,它可以为具体问题找到最恰当的类定义,并且可以在最恰当的继承级别解释问题。

Lua 中面向对象

我们知道,对象由属性和方法组成。LUA中最基本的结构是table,所以需要用table来描述对象的属性。

lua 中的 function 可以用来表示方法。那么LUA中的类可以通过 table + function 模拟出来。

至于继承,可以通过 metetable 模拟出来(不推荐用,只模拟最基本的对象大部分时间够用了)。

Lua 中的表不仅在某种意义上是一种对象。像对象一样,表也有状态(成员变量);也有与对象的值独立的本性,特别是拥有两个不同值的对象(table)代表两个不同的对象;一个对象在不同的时候也可以有不同的值,但他始终是一个对象;与对象类似,表的生命周期与其由什么创建、在哪创建没有关系。对象有他们的成员函数,表也有:

Account = {balance = 0}

function Accountwithdraw (v)

Accountbalance = Accountbalance - v

end

这个定义创建了一个新的函数,并且保存在Account对象的withdraw域内,下面我们可以这样调用:

Accountwithdraw(10000)

一个简单实例

以下简单的类包含了三个属性: area, length 和 breadth,printArea方法用于打印计算结果:

创建对象

创建对象是为类的实例分配内存的过程。每个类都有属于自己的内存并共享公共数据。

r = Rectangle:new(nil,10,20)

local WIN_REASON_CREATORGOD——这是光创吧……

return DuelCheckReleaseGroup(tp,c10000040spfilter,1,nil,10000000)

and DuelCheckReleaseGroup(tp,c10000040spfilter,1,nil,10000010)

and DuelCheckReleaseGroup(tp,c10000040spfilter,1,nil,10000020)

这是要求编号为10000000,10000010,10000020的三张卡,也就是三幻神。

--special summon这行之下的一段是光创的召唤条件

--spsummon condition这行之下的是光创的召唤不可被无效化

EFFECT_FLAG_CANNOT_DISABLE就是效果不可无效

EFFECT_FLAG_UNCOPYABLE是指这个效果不可复制,譬如混沌幻影那种复制效果

--win这行之下就是规则胜利的代码了

EVENT_SPSUMMON_SUCCESS就是在它召唤成功的时间点奏效,EFFECT_FLAG_CANNOT_DISABLE这个效果也是不可被无效的。

programming in lua 有相关的例子,一般脚本语言和c/c++之类的互相调用分两类,一类是扩展,就是将c/c++模块封装起来给脚本语言用,用swig做封装很方便的,一类是嵌入,就是在c/c++等应用中嵌入lua引擎,一般是用来分离经常变化的逻辑部分,比如WOW就是用lua语言作为扩展,用户可以编写lua脚本来完成一些特定功能的机器人。你要做的就是使用lua c api来在你的程序中执行lua。类似这种:int iErr = 0;lua_State lua = lua_open (); // Open Lualuaopen_io (lua); // Load io libraryif ((iErr = luaL_loadfile (lua, "testlua")) == 0){// Call mainif ((iErr = lua_pcall (lua, 0, LUA_MULTRET, 0)) == 0){ // Push the function name onto the stacklua_pushstring (lua, "helloWorld");// Function is located in the Global Tablelua_gettable (lua, LUA_GLOBALSINDEX); lua_pcall (lua, 0, 0, 0);}}lua_close (lua);

在Xcode中配置Lua。

使用Lua,要在本地新建Lua文件,如要在iPhone中使用,可以将文件建立在App下的Documents文件夹下,或可以放在服务器端,使用时下载下来。

Lua是一个小巧的脚本语言,作者是巴西人,该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

以上就是关于lua面向对象的理解与实现过程全部的内容,包括:lua面向对象的理解与实现过程、游戏王卡的LUA,帮忙解释一下!、求教,下载的LUA格式脚本文件怎样用到游戏里。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9437253.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存