Cocos 2d-x 3.6 touch事件只有began 坑~

本文深入探讨了触碰事件机制,特别关注于只触发开始阶段的行为。通过展示具体的代码片段和解析Cocos框架中LayerEx.lua文件的相关部分,文章详细解释了如何在触碰事件中实现这一特定功能。同时,提供了代码示例,帮助开发者理解并应用到实际项目中。

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

touch事件只有began

-- add touch layer

    display.newLayer()

        :onTouch(handler(self, self.onTouch))

        :addTo(self)

少了这个return,让哥的touch事件只有began,framework就是这么菜


cocos\framework\extends\LayerEx.lua


function Layer:onTouch(callback, isMultiTouches, swallowTouches)

    if type(isMultiTouches) ~= "boolean" then isMultiTouches = false end

    if type(swallowTouches) ~= "boolean" then swallowTouches = false end


    self:registerScriptTouchHandler(function(state, ...)

        local args = {...}

        local event = {name = state}

        if isMultiTouches then

            args = args[1]

            local points = {}

            for i = 1, #args, 3 do

                local x, y, id = args[i], args[i + 1], args[i + 2]

                points[id] = {x = x, y = y, id = id}

            end

            event.points = points

        else

            event.x = args[1]

            event.y = args[2]

        end

        return callback(event)

    end, isMultiTouches, 0, swallowTouches)

    self:setTouchEnabled(true)

    return self

end



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值