cocos2dx+lua 支持多点触摸例子

测试环境:cocos2d-x-2.1.4
MultiTouchesTestLayer.lua代码如下:
--[[
author: blog.163.com/mr_zyf/
]]
local layer=CCLayer:create()

--多点触摸事件回调函数
local function onTouchsEvent(eventType,touchs)
         --[[
            eventType:触摸事件类型.
            touchs:多点触摸的数组表,它的大小=n点触摸*3
        ]] 
         if eventType=="began" then --手指开始触摸屏幕
           for i=1,#touchs,3 do
                local x,y,id=touchs[i],touchs[i+1],touchs[i+2]--从touchs中获取一点触摸的坐标和id
               local sprite=CCSprite:create("CloseNormal.png") --创建精灵
               sprite:setTag(id+100) --根据触摸id设置精灵的标签
               sprite:setPosition(x,y) --根据触摸坐标设置精灵的位置
               layer:addChild(sprite) --增加精灵到layer
           end
        elseif eventType=="moved" then  --手指一直触摸着屏幕移动
           for i=1,#touchs,3 do
              local x,y,id=touchs[i],touchs[i+1],touchs[i+2]
              local sprite=layer:getChildByTag(id+100) --根据触摸id,寻找精灵
              sprite:setPosition(x,y) --根据触摸坐标设置精灵的位置
           end
        elseif eventType=="ended" then  --手指一直触摸着屏幕放开后
           for i=1,#touchs,3 do
              local id=touchs[i+2] --获取触摸id
              layer:removeChildByTag(id+100,true) --根据触摸id,从layer中删除精灵
           end
        end  
end

layer:setTouchEnabled(true)
 
layer:registerScriptTouchHandler(onTouchsEvent,true) --设置支持多点触摸

return layer
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值