lua脚本中的touch事件_skybeauty_新浪博客

1,注册单点触控模式
local function onTouchBegan(x, y)
      return  true
end
local function onTouch(eventType, x, y)
if eventType == CCTOUCHBEGAN then
return onTouchBegan(x,y)
elseif eventType ==CCTOUCHMOVED then
        return onTouchMoved(x,y)
elseif eventType == CCTOUCHENDED then
return onTouchEnded(x,y)
end
end

local layer = CCLayer:create()
layer:registerScriptTouchHandler(onTouch,false,true)
layer:setTouchEnabled(true)
利用 registerScriptTouchHandler函数的第一个参数就是添加一个function回调,第二个参数是控制是否是多点触控,第三个参数是控制是否吞噬touch事件, 当开启吞噬touch事件的时候,在touchBegin中return true当return false 的时候将吞噬本身接受touch事件的,也就是不再将touch事件传递给 onTouchMoved,

local function onTouchBegan(touch)
local x = touch[1]
local y = touch[2]
local position = ccp(x,y)
return true
end

local function onTouchMoved(touch)
local x = touch[1]
local y = touch[2]
local p = ccp(x,y)
--获得move的点

end 

local function onTouchEnded(touch)
end

local function onTouch(eventType,touch)
--开启多点触控
if touch[3]~=0 then 
    return 
else
if eventType == CCTOUCHBEGAN then
return onTouchBegan(touch)
elseif eventType ==CCTOUCHMOVED then
return onTouchMoved(touch)
elseif eventType == CCTOUCHENDED then
return onTouchEnded(touch)
end
end
end
local layer = CCLayer:create()
layer:registerScriptTouchHandler(onTouch,true,false)
layer:setTouchEnabled(true)
多点触控的时候 onTouch(eventType,touch)中touch传递的是一个table,里面包含三个参数分别是x,y和收到的touch的接触点,可以通过控制接触点来控制由于多点带来的屏幕操作bug
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值