以前研究 从微信小程序里面的canvas实现;后来发现laya也能够实现 不过并无使用他们的粒子;算法
最终效果canvas
实现过程:小程序
1.不断改变颜色的粒子=== 经过ani作一个不断更换颜色的粒子 (位置不须要改变); 微信小程序
2.封装一下animation类微信
class animationB extends Laya.Animation {
/**动画的速度 */
public speed: number;
/**是否到家 */
public IsComeHome: boolean;
/**是不是创造出来的*/
public IsCreate: boolean;
/**目的地的x坐标 */
public destinationX: number;
/**目的地的y坐标 */
public destinationY: number;
/**记录自身的角度 */
public rememberRotation: number;
constructor() {
super();
}
}
由于粒子是不断运动的因此给他加了几个属性值来方便操做;
这里也能够直接经过增长laya里面的animation属性来实现

不过大佬说直接在这里增长这些参数容易出事情,因此本身封装比较稳oop
以后咱们经过循环来对粒子进行操做;动画
其中粒子从屏幕四方不断汇聚的效果并非生成和消失;而是到达目的地的点随机去了屏幕边缘的位置;spa
在一个loop里面写一个for循环让小点往destination 移动;若是移动到了目标点就让他改变位置而且从新设置一个目标点,blog
这里面有个坑,当你的animation的位置改变的时候 ,他的rotation会归0; 因此作了一个值记录他的rotation;rem
总结:实际上就是经过你的算法来对ani进行操做ani能够设置成静态的;不过关于残影效果怎么作还不清楚,只能实现一些简单的效果;若是有大佬知道欢迎指教。