cocos2d-x lua注册事件函数

作者: 亮亮同学 | 来源:发表于2017-12-20 11:41 被阅读72次

    cocos2d-x技术群新群:117871561
    c++技术交流群:593010226

    版本 3.1.1

    registerScriptTouchHandler             --注册触屏事件
    registerScriptTapHandler                  --注册点击事件
    registerScriptHandler                        -- 注册基本事件 包括 触屏 层的进入 退出 事件
    registerScriptKeypadHandler           --注册键盘事件
    --registerScriptAccelerateHandler     注册加速事件   此事件用法待更新
    

    1.registerScriptTouchHandler 注册触屏事件

    --注册
    self.spTrusteeCover = cc.Layer:create():setVisible(false):addTo(self, 4)
    self.spTrusteeCover:setTouchEnabled(true)   self.spTrusteeCover:registerScriptTouchHandler(function(eventType, x, y)
    return self:onTrusteeTouchCallback(eventType, x, y)
    end)
    
    --回调函数
    function GameViewLayer:onTrusteeTouchCallback(event, x, y)
        local rect = self.spTrusteeCover:getChildByTag(GameViewLayer.SP_TRUSTEEBG):getBoundingBox()
        if cc.rectContainsPoint(rect, cc.p(x, y)) then
            return true
        else
            return false
        end
    end
    

    2,registerScriptTapHandler 很少用 , 注册点击事件

    --给一张图添加点击事件
    function GameViewLayer:set()
      local im_btn = cc.ImageView:create()
      :setPosition(100,100)
      local function btnCallBack()
            print("registerScriptTapHandler") 
    end
    im_btn:registerScriptTapHandler(btnCallBack)
    end
    

    3,registerScriptHandler 平时项目中用的最多,前面有写此注册事件的用法,这里在简单写一下 注册基本事件 包括 触屏 层的进入 退出 事件

    function GameViewLayer:registLayerListener()  
        --创建一个单点触屏事件  
        local listener = cc.EventListenerTouchOneByOne:create()  
        --注册触屏开始事件  
        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 = config.bottomLayer:getEventDispatcher()  
        --事件派发器 注册一个node事件  
        eventDispatcher:addEventListenerWithSceneGraphPriority(listener, config.bottomLayer)  
    end  
    --onTouchBegan,onTouchMoved,onTouchEnded分别为触摸开始,移动,结束回调处理方法
    

    4,registerScriptKeypadHandler --注册键盘事件

    function GameViewLayer:KeyboardEvent()  
        local function keyboardPressed(keyCode, event)  
            if keyCode == 23 then  
                log("left")  
            elseif keyCode == 24 then  
                log("right")  
            elseif keyCode == 25 then  
                log("up")  
            elseif keyCode == 26 then  
                log("down")  
            end  
        end  
        local listener = cc.EventListenerKeyboard:create()  
        listener:registerScriptHandler(keyboardPressed, cc.Handler.EVENT_KEYBOARD_PRESSED)  
        listener:registerScriptHandler(keyboardReleased, cc.Handler.EVENT_KEYBOARD_RELEASED)  
        local eventDispatcher = config.bottomLayer:getEventDispatcher()  
        eventDispatcher:addEventListenerWithSceneGraphPriority(listener, config.bottomLayer)  
    end  
    
    

    这几个注册事件方法 可以根据情况选择使用

    相关文章

      网友评论

      本文标题:cocos2d-x lua注册事件函数

      本文链接:https://www.haomeiwen.com/subject/lstgwxtx.html