--第一种方式:
--继承
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中,官方已经帮我们把继承的底层写好了,所以按照第一种的方式来继承,既简单,又方便。