Lua_在Lua中继承Cocos2dx的C++类

--第一种方式:
--继承
Circle = class("Circle", function()
		return cc.Node:create()
	end
)

--初始化
function Circle:ctor()
	cclog("Circle init callBack")
end

--创建
function Circle:create()
    local sprite = Circle:new()

    sprite.circleSpeed = 0

	local function updateHandlerFunc(dt)
		sprite:update()
	end
	--sprite.updateHandler = Director.getScheduler():scheduleScriptFunc(updateHandlerFunc,0.0,false)

    return sprite
end

function Circle:update()
	local rotation = self:getRotation()+tonumber(self.circleSpeed/60)
	self:setRotation(rotation)
end
--第二种方式:
Circle = class("Circle")
Circle.__index = Circle

--继承
function Circle:extend(target)
    local t = tolua.getpeer(target)
    if not t then
        t = {}
        tolua.setpeer(target, t)
    end
    setmetatable(t, self)
    return target
end

--创建
function Circle:create()
    local sprite = Circle:extend(cc.Node:create())

    sprite.circleSpeed = 0

	local function updateHandlerFunc(dt)
		sprite:update()
	end
	--sprite.updateHandler = Director.getScheduler():scheduleScriptFunc(updateHandlerFunc,0.0,false)

    return sprite
end

function Circle:update()
	local rotation = self:getRotation()+tonumber(self.circleSpeed/60)
	self:setRotation(rotation)
end

建议使用第一种方式继承Cocos2dx的C++类,现在在3.x中,官方已经帮我们把继承的底层写好了,所以按照第一种的方式来继承,既简单,又方便。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值