有大佬可以提供一些判断刮刮乐有没有刮干净的思路吗

我的刮刮乐是用mask实现的,刚开始mask里面的graphics为0,画的越多就显示的范围越多,我现在使用的判断方式是每个数字上有一个空的node然后在touch move 里判断,哪些点被经过了,但是这样有一个弊端,就是移动速度太快他有的点会跳过判断,但graphics会画,有大佬有其他思路的吗

根据touchMove拿到上一个点的位置和当前点的位置,当距离超过一定长度。分段模拟点的移动位置再根据位置判断哪些点被经过了就行了。分段的次数越大,越准。

不用太准确吧,把触摸区域分割成若干矩形并检测一次碰撞,等大部分或者所有的矩形都触摸到了,就算刮完了。

1赞

准备一个方形格子数据, 然后全是0,1。touchmove移动时获取位置,和上一次位置连线,把和线段相交的格子标脏1,然后检查脏状态。如果还有0,则没干净

刮开的区域占到 75%的格子就算刮开了。不就好了

mask的刮刮卡在Android上刮太多次会触发崩溃,这个点要注意避免一下

我做过一个刮刮乐的案例 但是因为是彩票的关系不方便发

动画 大概是这样

这个方案好实现

感觉这种划开大部分就触发的能好实现一些。比如累计用户滑动的时间,或者累计用户滑动的距离,大于一个阈值直接触发。

在可刮开区域画多个长宽和画笔半径一样的矩形,存一个数组,每次移动把画笔经过的点状态设置已刮开。鼠标结束触摸统计一下数组

使用权重也行,奖品区域的小格子权重大 空白区域小

埋点,权重

1赞

直接检测奖品的矩形区域在graphics的renderData里对应的区域是否为透明不就行了