zoukankan      html  css  js  c++  java
  • Quick cocos2dx-Lua(V3.3R1)学习笔记(十三)-----继续触摸事件之多点触摸

    在前面,我们提过了单点触摸,下面我们就试一下多点触摸的用法(我用的是cocos code ide进行手机调试,不会的,进入前一篇查看)

    function MainScene:ctor()
        local sprite = display.newSprite("close.png")   --自己随便找个图片资源吧
        sprite:align(display.CENTER, display.cx, display.cy)
        sprite:addTo(self)
    
        sprite:setTouchEnabled(true)                        
        sprite:setTouchMode(cc.TOUCHES_ALL_AT_ONCE)       
        sprite:addNodeEventListener(cc.NODE_TOUCH_EVENT, function (event)   
           dump(event)     
            return true
        end)
    end

    只要吧setTouchMode填入多点触摸就行,我们一开始要是不知道这个event里面有什么,我们先dump他,看看他里面有是呢么。在pc上面运行,点击一下看看

    21

    我们看到控制台输出,看到points是一个table,我们电脑鼠标只能单点,就输出了points[0]的信息,

    在多点触摸中 ,它还拥有added,removed两个独有事件。

    function MainScene:ctor()
    
    
        local layer = display.newLayer()
        layer:addTo(self)
        
        layer:setTouchEnabled(true)                        
        layer:setTouchMode(cc.TOUCHES_ALL_AT_ONCE)       
        layer:addNodeEventListener(cc.NODE_TOUCH_EVENT, function (event)   
            if event.name == "began" then
                print("触摸开始")
            elseif event.name == "added" then
                print("增加了一个触摸点")
    
            elseif event.name == "moved" then
               
    
            elseif event.name == "removed" then
                print("移除了一个触摸点")   
            elseif event.name == "ended" then
                print("触摸结束")
    
            end 
            return true
        end)
    end

    连接安卓设备调试输出

    25

    我将五个手指放上去,看到这个调试信息,事件触发顺序,就能看出来了,第一个点就是触摸开始, 后面慢慢增加,到后面手指离开屏幕,就是一个一个减少,下面我们就就筛选第三个点,当我们第三个点触摸的时候,输出一个信息

    function MainScene:ctor()
    
    
        local layer = display.newLayer()
        layer:addTo(self)
        layer:setTouchEnabled(true)                        
        layer:setTouchMode(cc.TOUCHES_ALL_AT_ONCE)       
        layer:addNodeEventListener(cc.NODE_TOUCH_EVENT, function (event)   
            if event.name == "began" then
                print("触摸开始")
            elseif event.name == "added" then
                print("增加了一个触摸点")
                if "table" == type(event.points["2"]) then
                    print("三点触摸")
                end    
            elseif event.name == "removed" then
                print("移除了一个触摸点")   
            elseif event.name == "ended" then
                print("触摸结束")
    
            end 
            return true
        end)
    end

    到手机上面输出

    123

    我们看到,第三个手机放上去,出现了三点触摸字样,注意,event.point里面的表索引从0开始,第二个点就是event.point[“1”]了。注意不能写成event.point[1],这样是不会出现打印信息的。

  • 相关阅读:
    EasyDSS前端界面在页面缩小时内置列表仍需手动刷新的优化
    【解决方案】家庭保姆犯罪案频出,EasyDSS视频监控平台如何确保家政安全?
    EasyDSS现场录视频流合成后出现视频内容部分丢失的问题排查及解决
    TSINGSEE青犀视频基于流媒体技术EasyDSS搭建酒店IPTV直播/点播平台
    EasyDSS视频直播列表页面横向滚动条和纵向滚动条不能同步的问题优化
    【解决方案】电力巡检进入智能化时代,无人机+EasyDSS开启智能巡检新模式
    EasyDSS新内核版本测试删除录像文件后存在残留问题调整优化
    IT常识
    Java面试题+算法案例
    数据库理论概述
  • 原文地址:https://www.cnblogs.com/luagame/p/4220127.html
Copyright © 2011-2022 走看看