Lua--初学--new,inherit总结
1.基于元表进行使用
原理:当设置了元表,并且设置了元表的__index,当前表没有的属性会根据__index指向的表进行寻找
2.new的过程:返回一张空表,并且设置元表为调用new方法的表
3.inherit的过程:往_G表(存储所有全局变量的表),写入一张表,并且设置元表为调用inherit
要注意的点是:重写父类方法,如果要调用父类的方法,在添加新的功能时,调用父类的方法要使用.调用
--封装
Object={}
Object.posx=0
Object.posy=0--new 实例化
function Object:new( )local obj={}setmetatable(obj,self)self.__index=selfreturn obj
endlocal o1=Object:new()
print(o1.posx)
print(o1.posy)--inherit 继承
function Object:inherit(className)_G[className]={}local obj = _G[className]setmetatable(obj,self)self.base=selfreturn obj
endObject:inherit("PlayerObject")
p1=PlayerObject:new()function PlayerObject:Move( )self.posx=self.posx+1self.posy=self.posy+1
endp1.Move(p1)
print(p1.posx)
print(p1.posy)PlayerObject:inherit("MyPlayerObject")
function MyPlayerObject:Move( )
--使用.调用父类的方法,而不适用:调用,因为使用:调用,会把元表playerObject当成self使用,而不是当前的调用者self.base.Move(self)print(self.posx)print(self.posy)
endprint("---")
mypo1=MyPlayerObject:new()
mypo1:Move()
mypo2=MyPlayerObject:new()
mypo2:Move()
Lua--初学--new,inherit总结相关推荐
- lua -- class
Lua中没有类的概念,有的只有table表,而面向对象的实现只不过是将表与父类的表连在一起,没有某个变量的时候就去父类查找.cocos2dx-lua中有一个class函数实现了类的继承,包括了单继承和 ...
- Unity的学习笔记(XLua的初学用法并在lua中使用unity周期函数)
自己最近也在研究怎么用lua控制UI,然后看着网上介绍,决定选用XLua,毕竟TX爸爸出的,有人维护,自己琢磨着怎么用,于是弄出来一个能用的作为记录. 当然,XLua主要是用于热更新,我自己是拿来尝试 ...
- lua调用c 模块linux,Lua 调用自定义C模块
这是<Lua程序设计>中提到的,但是想成功执行,对于初学Lua的确没那么简单.这里涉及如何如何生成一个动态链接库so文件:Lua5.2中导出函数从LuaL_register变成了LuaL_ ...
- lua OOP实现对象的链式调用
数学中的链式法则 http://sx.zxxk.com/ArticleInfo.aspx?InfoID=164649 链式微分法则: 实数运算的链式法则: 对数运算的链式法则: 平行公理的链式法则: ...
- lua对接bmob数据库
lua对接bmob数据库 学习的最终结果: 实现用户注册和登录 数据库增删改查 远程公告 远程更新版本 微信反馈 甚至自己做一个聊天室服务器,等等... 最后送大家的彩蛋-–超级无敌微信反馈(文末) ...
- Lua 报错 PANIC: unprotected error in call to Lua API (no calling environment) 解决办法
问题表现 lua_State *L = lua_open(); /* opens Lua */ luaopen_base(L); /* opens the basic library */ luaop ...
- 饥荒mod制作初学笔记
使用工具:暂时使用sublime_text作为lua语言的运行环境 mod成分部分----------------------------------------------------------- ...
- 使用lua开发游戏--love2d教程汇总
说明,我只是在网上浏览时发现了"金庸群侠传lua复刻版",有源码,基于sdl使用C语言,我大概看了 一下不是很懂.后来发现了love2d,也是基于sdl,于是便有了用love2d再 ...
- cocos2dx之Lua学习资料汇总
cocos2dx官方教程 http://cn.cocos2d-x.org/tutorial/lists?id=64 Cocos2d-x 脚本语言Lua开发专题 http://cn.cocos2d-x ...
- cocosstudio csd文件解析为.lua
在学习python过程中,有幸能够看到一位大神在网页中公开的一个关于<CocosStudio 文件解析工具CsdAnalysis>的源码.本人使用稍作改变,由原有的.csd文件转换为C++ ...
最新文章
- iOS开发系列--C语言之存储方式和作用域
- 接上一篇配置多仓库相关命令
- python字符串find函数-Python字符串的方法,查找和替换
- SpringBoot的基础
- uiuc计算机课程,UIUC计算机科学专业解读
- php里建立数据库和表,PHP 创建数据库和表 | w3cschool菜鸟教程
- spring boot 2.0之安全
- 2017计算机基础知识ppt,2017计算机基础试卷.doc
- journalctl日志管理
- 新能源外地车进京限行限号政策是怎样的?
- python编程题自动评分系统_基于数据分析的评分系统改进
- 周志华揭开机器学习本质的57张PPT
- 情绪文本的时空可视化分析
- 苹果cmsv10动漫二次元主题网站模板免费源码
- 学籍信息管理系统-------具体设计
- 如何在eclipse中导入Java项目文件包(方法截图详细步骤)
- 同步时钟系统架构与原理
- 大数据Hadoop之HDFS和MapReduce_02_01
- CAN接口测试工装研究
- 微盟PK有赞,谁更胜一筹?
热门文章
- Windows Connectify使自己笔记本变无线路由器
- 数据可视化大屏分析避孕套(爬虫+jieba分词+pyecharts可视化大屏)
- tkinter模块高级操作(一)—— 透明按钮、透明文本框、自定义按钮及自定义文本框
- ABB UFC719AE01 3BHB003041R0101 3BHB00072R0101 UFC721AE101 3BHB002916R0101
- python 数据库编程,这篇是针对 mysql 的,滚雪球学Python第4季第13篇
- 【数学模型】数学模型的简单认识
- 直销业务变得简单:WordPress分步指南
- JDBC的学习(第二节:JDBC连接数据库 )
- vc和MFC的详细历史
- 基于 Gtid 的 MySQL 主从同步实践