zoukankan      html  css  js  c++  java
  • 【转】关于cocos2dx+lua注册事件函数详解

    转载:http://www.taikr.com/article/1605

    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)
    config.bottomLayer:registerScriptTouchHandler(onTouchEvent)
    end
    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

  • 相关阅读:
    BZOJ 1009 GT考试
    BZOJ 2085 [POI2010] Hamsters
    BZOJ 3160 万径人踪灭
    左偏树 / 非旋转treap学习笔记
    BZOJ 3217 ALOEXT
    BZOJ 3065 带插入区间第K小值
    BZOJ2716 天使玩偶
    XSY1659 [HNOI2012]永无乡
    BZOJ1367【Baltic2004】sequence
    蔡勒公式 计算星期
  • 原文地址:https://www.cnblogs.com/eggtomcato/p/10115474.html
Copyright © 2011-2022 走看看