cocos2dx_3.3 lua类的创建

来源:互联网 发布:产品可靠性 仿真软件 编辑:程序博客网 时间:2024/05/22 07:04

学习一下cocos2dx 3.3 lua类的创建,记录一下自己的学习方法


local TouchSprite = class("TouchSprite",  --继承cc.Sprite    function(fileName)        return cc.Sprite:create(fileName)     end)TouchSprite.__index = TouchSprite   -- 用于访问TouchSprite.type = 0    -- 自定义属性TouchSprite.typeAction = 0function TouchSprite:createMS(fileName,_type)      --自定义构造函数    local mySprite = TouchSprite.new(fileName)     --这个new相当于执行了上面的class方法    mySprite:myInit(_type)    mySprite:Init(_type)    mySprite:setPosition(100,200)    return mySpriteendfunction TouchSprite:myInit(_type)    --自定义函数    self.type =_type    cclog(self.type)endfunction TouchSprite:Init(type)    local function onTouchBegan(touch, event)        if cc.rectContainsPoint(self:getBoundingBox(),touch:getLocation() ) then            cclog("onTouchBegan")            self.type =type            cclog(self.type)            if self.typeAction == 0 then                self:action(0.5,type)            end        end        return true    end    local function onTouchMoved(touch, event)        if cc.rectContainsPoint(self:getBoundingBox(),touch:getLocation() ) then            cclog("onTouchMoved")        end    end    local function onTouchEnded(touch, event)        if cc.rectContainsPoint(self:getBoundingBox(),touch:getLocation() ) then            cclog("onTouchEnded")        end    end    local listener = cc.EventListenerTouchOneByOne:create()    listener:setSwallowTouches(true);    listener:registerScriptHandler(onTouchBegan,cc.Handler.EVENT_TOUCH_BEGAN )    listener:registerScriptHandler(onTouchMoved,cc.Handler.EVENT_TOUCH_MOVED )    listener:registerScriptHandler(onTouchEnded,cc.Handler.EVENT_TOUCH_ENDED )    local eventDispatcher = self:getEventDispatcher()    eventDispatcher:addEventListenerWithSceneGraphPriority(listener, self)endfunction TouchSprite:action(time,type)    self.typeAction = 1    local actionBy = cc.RotateBy:create(time , 360)    local function functioncall()        self.typeAction = 0    end    local callback = cc.CallFunc:create(functioncall)    self:runAction(cc.Sequence:create(actionBy, callback))endfunction TouchSprite:removeThis()    if self then        self:getParent():removeChild(self, true)           endendreturn TouchSprite


0 0
原创粉丝点击