在前面,我们提过了单点触摸,下面我们就试一下多点触摸的用法(我用的是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上面运行,点击一下看看
我们看到控制台输出,看到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,255)">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连接安卓设备调试输出
我将五个手指放上去,看到这个调试信息,事件触发顺序,就能看出来了,第一个点就是触摸开始, 后面慢慢增加,到后面手指离开屏幕,就是一个一个减少,下面我们就就筛选第三个点,当我们第三个点触摸的时候,输出一个信息
function MainScene:ctor() local layer = display.newLayer() layer:addTo(self) layer:settouchEnabled(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 到手机上面输出
我们看到,第三个手机放上去,出现了三点触摸字样,注意,event.point里面的表索引从0开始,第二个点就是event.point[“1”]了。注意不能写成event.point[1],这样是不会出现打印信息的。
总结以上是内存溢出为你收集整理的Quick cocos2dx-Lua(V3.3R1)学习笔记(十三)-----继续触摸事件之多点触摸全部内容,希望文章能够帮你解决Quick cocos2dx-Lua(V3.3R1)学习笔记(十三)-----继续触摸事件之多点触摸所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)