cocos2dx+lua注册事件函数详解

来源:互联网 发布:如何在淘宝上开店 编辑:程序博客网 时间:2024/05/21 12:48

coocs2dx 版本 3.1.1

registerScriptTouchHandler 注册触屏事件

registerScriptTapHandler 注册点击事件

registerScriptHandler 注册基本事件 包括 触屏 层的进入 退出 事件

registerScriptKeypadHandler 注册键盘事件

registerScriptAccelerateHandler 注册加速事件


registerScriptTouchHandler 详解(可以设置单点或多点)
function gameWindow:addLayerTouchEventMethod1()    local function onTouchEvent(eventType, x, y)        --log("eventType = "..tostring(eventType))        if eventType == "began" then             --需要返回true            return onTouchBegan(touch, event)        elseif eventType == "moved" then             onTouchMoved(touch, event)        elseif eventType == "ended" then             onTouchEnded(touch, event)        end    end    config.bottomLayer:setTouchEnabled(true)    <code class="java spaces"> </code><code class="java plain">config.bottomLayer:registerScriptTouchHandler(onTouchEvent)</code><div class="line number15 index14 alt2"><code class="java plain">end</code></div>

registerScriptTapHandler 注册点击事件

function gameWindow:addBtn()    local btn = cc.MenuItemImage:create("white.png", "black.png", "black.png")    btn:setPosition(320, 160)    local function btnClick()        log("btnClick")    end    btn:registerScriptTapHandler(btnClick)    local menu = cc.Menu:create()    config.bottomLayer:addChild(menu)    menu:setPosition(cc.p(0,0))    menu:addChild(btn)end

registerScriptHandler 注册基本事件
function gameWindow:addLayerTouchEventMethod2()    --创建一个单点触屏事件    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

注册layer的 进入 退出事件用法
function gameWindow:addLayerEnterAndExitEvent()    local function onNodeEvent(eventType)        if eventType == "enter" then            log("enter")        elseif eventType == "exit" then            log("exit")        end    end    config.bottomLayer:registerScriptHandler(onNodeEvent)end


registerScriptHandler 注册键盘事件

function cocoEvent.addKeyboardEvent()    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        --log("keyCode = "..tostring(keyCode))        --log("event = "..tostring(event))    end     local function keyboardReleased(keyCode, event)        --log("keyCode = "..tostring(keyCode))        --log("event = "..tostring(event))    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




0 0
原创粉丝点击