Cocos2dx-Lua 长按手势

本文介绍如何在Cocos2d-x使用Lua实现长按手势功能。通过创建一个类Button,设置长按触发时间和回调方法,利用scheduler进行计时,并记录触摸开始位置和状态,以实现长按事件的触发和处理。
摘要由CSDN通过智能技术生成

Cocos2dx只有touchUpInsid的按钮或菜单,有时可能会想要一个长按手势来触发事件。

-- 这是类名,命名这件事还是很麻烦的,凑合就是Button吧

local Button = {}

-- 触发时间,按多长时间触发

local mTriggerTime = 0.5
-- 可抖动区域,如果在长按触发前移动超过这个距离则不会触发事件
local removableDis   = 10

-- 类方法sprite -- 给谁添加这个事件   longPressHandler -- 长按触发回调方法

clickHandler -- 还可以添加单击事件(touchIn)可设定触发时间 triggerTime

Button.registerLongPressHandler = function(sprite, longPressHandler, clickHandler, triggerTime)
    triggerTime = triggerTime or mTriggerTime

    

-- 记录长按时间

    local countTime = nil

-- 是用scheduler 来计时的,记录scheduler 的id

    local sid       = nil

-- 开始位置

    local beganPoint= nil

-- 有没有回调过

    local haveCall  = false

-- 有没移动(超出可移动范围)

    local isMoved   = false
-- 有没已添加过监听
    if sp
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值