我的刮刮乐是用mask实现的,刚开始mask里面的graphics为0,画的越多就显示的范围越多,我现在使用的判断方式是每个数字上有一个空的node然后在touch move 里判断,哪些点被经过了,但是这样有一个弊端,就是移动速度太快他有的点会跳过判断,但graphics会画,有大佬有其他思路的吗
根据touchMove拿到上一个点的位置和当前点的位置,当距离超过一定长度。分段模拟点的移动位置再根据位置判断哪些点被经过了就行了。分段的次数越大,越准。
不用太准确吧,把触摸区域分割成若干矩形并检测一次碰撞,等大部分或者所有的矩形都触摸到了,就算刮完了。
1赞
准备一个方形格子数据, 然后全是0,1。touchmove移动时获取位置,和上一次位置连线,把和线段相交的格子标脏1,然后检查脏状态。如果还有0,则没干净
刮开的区域占到 75%的格子就算刮开了。不就好了
mask的刮刮卡在Android上刮太多次会触发崩溃,这个点要注意避免一下
我做过一个刮刮乐的案例 但是因为是彩票的关系不方便发
大概是这样
这个方案好实现
感觉这种划开大部分就触发的能好实现一些。比如累计用户滑动的时间,或者累计用户滑动的距离,大于一个阈值直接触发。
在可刮开区域画多个长宽和画笔半径一样的矩形,存一个数组,每次移动把画笔经过的点状态设置已刮开。鼠标结束触摸统计一下数组
使用权重也行,奖品区域的小格子权重大 空白区域小
埋点,权重
1赞
直接检测奖品的矩形区域在graphics的renderData里对应的区域是否为透明不就行了