cocos2d-x 的lua继承
来源:互联网 发布:音画同步软件 编辑:程序博客网 时间:2024/05/16 09:21
lua的类
(1)lua的类实际上就是lua的 table ,类之间的继承实际上就是吧 table 连到一起了,调用方法和属性,就是先去第一个table搜索如果没有再去连在后面的table里搜索。
(2)lua里的self实际上就是table了,也能代表类名
(3)lua继承
local self = {}setmetatable(self , classA) 在表self基础上建立classA,classA是一个新表setmetatable(classB , classA) 在表classA基础上建立classB,classB是一个新表
(4)表唯一的标示
classA.__index = classA
2dx的lua继承
(1)class 是 cocos2d-x 的方法
class("A", B) A 继承 B,B必须是lua文件里的类
(2)setmetatable(A, B) 是 lua 的继承, A 继承 B
(3)通过 tolua 的继承 tolua.getpeer(target) target:cc.Sprite:create(img) 是C++的一个对象
再通过 setmetatable(t, ChilSprite) 实现对 C++对象的继承
local ParentOne = class("ParentOne") function ParentOne:testDemo() print('ParentOne demo')end--父类 ParentOnelocal ChilSprite = class("ChilSprite", ParentOne)ChilSprite.__index = ChilSpritefunction ChilSprite.extend(target) local t = tolua.getpeer(target) --tolua的继承 if not t then t = {} tolua.setpeer(target, t) end setmetatable(t, ChilSprite) return targetendfunction ChilSprite:createS(img) local sprite = ChilSprite.extend(cc.Sprite:create(img)) return spriteendfunction ChilSprite:myFunc(img) print("ChilSprite myFunc "..img)endfunction ChilSprite:goFunc() print("ChilSprite goFunc ")end--父类 ChilSpritelocal ChilLayer = class("ChilLayer", ChilSprite)ChilLayer.__index = ChilLayerfunction ChilLayer.extend(target) local t = tolua.getpeer(target) if not t then t = {} tolua.setpeer(target, t) end setmetatable(t, ChilLayer) return targetendfunction ChilLayer:createL(img) local sprite = ChilLayer.extend(cc.Sprite:create(img)) return spriteendfunction ChilLayer:myFunc(img) print("ChilLayer myFunc "..img)endlocal function testBccLayer( scene )local ball = ChilLayer:createL("Images/ball.png") ball:setPosition(cc.p(VisibleRect:center().x - 110, VisibleRect:center().y - 110)) ball:setScale(3) scene:addChild(ball, 1111) local cball = ChilLayer:createS("Images/ball.png") --调用父类的方法 cball:setPosition(cc.p(VisibleRect:center().x + 110, VisibleRect:center().y + 110)) cball:setScale(3) scene:addChild(cball, 1111) ball:myFunc("1235") --调用自己的方法,覆盖父类的方法 ball:goFunc() --调用父类的方法 ball:testDemo() --调用父类的父类方法endfunction testBcc(scene)testBccLayer(scene)end
0 0
- cocos2d-x 的lua继承
- lua、quick-cocos2d-x(lua)、lua基本语法、lua类的实现、lua类的继承【新手必读】
- cocos2d-x的lua绑定
- Cocos2d-Lua之面向对象的继承
- Cocos2d-x lua的随机函数
- cocos2d-x绑lua的开发环境
- cocos2d-x绑lua的开发环境
- cocos2d-x绑lua的开发环境
- cocos2d-x绑lua的开发环境
- 基于COCOS2D-X的lua版打怪减血特效
- 对于cocos2d-x lua的防护措施
- Cocos2d-x 脚本语言Lua的使用
- cocos2d-x绑lua的开发环境
- Cocos2d-x lua CCTableView 的使用
- Cocos2d-x中Lua脚本的加密
- cocos2d-x绑lua的开发环境
- cocos2d-x lua 类对象的使用
- cocos2d-x lua 场景的创建
- c++虚函数
- Syntax error, annotations are only available if source level is 5.0解决办法
- 双向链表
- 温故知新 jdbc相关知识(1)
- <table> 标签的 rules 属性
- cocos2d-x 的lua继承
- eventproxy 控制并发
- hibernate中boolean的问题
- Android 支付宝以及微信支付快速接入流程
- 第三方登陆——OAuth2.0协议
- GLSL 色彩特效
- awk脚本
- 改造ueditor 在线图片功能 添加 删除 功能
- 使用 async 控制并发