cocos2d-x,lua的Layer.onClick点击事件封装

cocos2d-x3.4,lua版本Layer封装了onTouch事件,但没有封装onClick事件,游戏按钮资源通常是一张图片,使用ccui.Button有点浪费;

在Layer.onTouch事件中判断是否点击图片比较麻烦,began事件后,移动手势,ended事件坐标点就会跟began事件不在一个点上;

查看widget源码可知,按钮点击事件是在onTouchBegan,onTouchMoved、onTouchEnded中调用hitTest判断图片矩形是否与触摸点一致,都重合时才会触发点击事件;

这里对Layer的onTouch修改下,让其在限定范围内的移动小于20像素(容差值)才触发点击事件,在onClick方法中再判断是否点击目标图片即可,这样可以省去很多触摸判断,也可以实现点击功能,省去ccui.Button类性能也相应得到些提升;

打开文件:src/cocos/framework/extends/LayerEx.lua,编辑以下代码:

--[[

Copyright (c) 2011-2014 chukong-inc.com

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, me
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值