Cocos2d-x lua 触屏

本文介绍了一个使用Lua编写的触摸事件处理程序,通过registerScriptTouchHandler函数注册触摸开始、移动和结束的回调函数,并实现了背景图随手指移动的效果。文章详细展示了如何通过返回true或false来控制事件的传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

local touchBeginPoint = nil


       local function onTouchBegan(x, y)

            cclog("onTouchBegan: %0.2f, %0.2f", x, y)

            -- CCTOUCHBEGAN event must return true

            touchBeginPoint = {x = x, y = y}

           return true

       end


       local function onTouchMoved(x, y)

            cclog("onTouchMoved: %0.2f, %0.2f", x, y)

           if touchBeginPoint then

           local cx, cy = backGroundSp:getPosition()

            backGroundSp:setPosition(cx + x - touchBeginPoint.x,

            cy + y - touchBeginPoint.y)

            touchBeginPoint = {x = x, y = y}

           end

       end


       local function onTouchEnded(x, y)

            cclog("onTouchEnded: %0.2f, %0.2f", x, y)

       end



       local function onTouch(eventType, x, y)

           if eventType == "began"then

               return onTouchBegan(x, y)

                elseif eventType =="moved" then

               return onTouchMoved(x, y)

               else

               return onTouchEnded(x, y)

           end

       end




        layer:registerScriptTouchHandler(onTouch)

        layer:setTouchEnabled(true)


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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值