cocos2d-x lua注册事件函数

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注册事件函数)