cocos creator:短按、长按、双击

本文详细介绍了在Cocos Creator中实现游戏按钮的点击、长按、短按及双击事件处理方法。通过使用装饰器和事件监听,文章展示了如何在组件中设置不同类型的触摸事件,并通过状态判断来区分各种触碰行为。

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

const {ccclass, property} = cc._decorator;

@ccclass
export default class NewClass extends cc.Component {

    

    holdTimeEclipse = 0;    //用来检测长按
    holdClick = false;       //用来检测点击
    doubleTimeEclipse = 0;   //用来检测双击
    hold_one_click = 0;      //用来检测单击
    // LIFE-CYCLE CALLBACKS:

    onLoad () {
        this.node.on(cc.Node.EventType.TOUCH_START,function(event){
            this.holdClick = true;
            this.holdTimeEclipse = 0;            
        },this);

        this.node.on(cc.Node.EventType.TOUCH_END,function(event){           
            this.holdClick=false;
            if(this.holdTimeEclipse>=30)
            {                
                this.btn_status('long');                
            }
            else
            {                
                this.btn_status('short');                
            }    
            //开始记录时间
            this.holdTimeEclipse=0;            
        },this);
    }

    btn_status(status){
        if(status == 'short')
        {
            console.log(this.hold_one_click)
            this.hold_one_click ++;
            setTimeout(() => {
                if(this.hold_one_click == 1)
                {
                    console.log('short');
                    this.hold_one_click = 0;
                    
                } 
                else if(this.hold_one_click == 2)
                {
                    console.log('double');
                    this.hold_one_click = 0;
                }              
            }, 400);
            
        }
        else
        {
            this.hold_one_click = 0;
            console.log(status);
        }
        
    }

    start () {

    }

    update (dt) {
        if(this.holdClick)
        {
            this.holdTimeEclipse++;
            if(this.holdTimeEclipse>120)//如果长按时间大于2s,则认为长按了2s
            {
                this.holdTimeEclipse=120;
            }
        }
    }
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值