zoukankan      html  css  js  c++  java
  • (转载)【cocos2dx 3.x Lua] 注册事件函数详解

    出处:

        http://www.2cto.com/kf/201409/338235.html

    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)
        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
  • 相关阅读:
    kubernetes 在pod内无法ping通servicename和ClusterIP的解决方法
    最小安装的服务器怎么使用nm-connection-editor
    CentOS 系统升级系统内核版本
    kubernetes学习资料
    Docker学习笔记--(超详细)
    Cheat Engine 注入++: (密码=31337157)
    Jupyter-Notebook开机自启动
    kali远程桌面-krdp
    Win10 快捷方式小箭头及小盾牌如何替换
    NumPy学习心得(二)
  • 原文地址:https://www.cnblogs.com/luosongchao/p/4339076.html
Copyright © 2011-2022 走看看