1、预览效果
2、实现原理
滑动的轨迹分为多段,完整划痕由多段短的轨迹拼接而成。滑动过程中,记录一定数量的滑动点,根据两点间的距离和位置,计算两点间短轨迹的长度和角度,当有新的点添加进来时,删除最先添加的点,用类似方法,在轨迹最前端,再添加一条短的轨迹,类似下图效果。
3、短轨迹实现
短轨迹实例。只需要找一张合适精灵,用来进行拉伸即可,添加短轨迹的时候,用来实例化新的短轨迹用,我这里就是随便找的一张上下有透明,左右都是可以直接衔接的精灵图。
短轨迹位置。直接用新传入的坐标点即可,如下图的 now 节点位置。
短轨迹大小。计算当前节点和前一个节点的距离即可,即上图所示,now 节点和 last 节点之间的距离,然后对 now 节点进行拉伸,now 节点的锚点设置成 (1, 0.5),即是沿着红色箭头方向拉伸。
短轨迹的角度。计算图中 a 和 b 向量的夹角即可,a 向量选了一个 (1, 0) 的单位向量进行计算,B 向量,直接通过 now 节点和 last 节点的相对位置计算即可。
4、长轨迹实现
节点数的控制。如果滑动的节点太多,不对数量加以控制,会添加很多节点,我这里控制添加的节点数量是 20,超过 20 个,会移除掉最老的节点,在数组的尾部,添加一个新节点。
渐变的控制。为了模拟从头到尾有的大小变化,修改短轨迹的高度,越是靠前,高度越大,这样就会有一个渐变的效果。