Laya 粒子调用封装
Laya 粒子调用封装
@author ixenos 2020-05-29 16:09:41
0.需要结合这篇文章对源码的修改:Laya 爆改Laya IDE和Laya引擎使其支持2D粒子爆发模式
1.粒子信息配置在表中,信息包括:路径、回收倒计时
2.用一个Manager统一管理调用
3.伪代码如下:
1 /** 2 * 初始化粒子数据,并预加载 3 */ 4 public function init():void{ 5 //从表获取所有粒子配置 6 var loArr:Array = getData("ParticleSetting"); 7 var paths:Array = getPaths(loArr); 8 preLoad(paths); 9 } 10 11 /** 12 * 播放控制 13 */ 14 public function play(id:*, target:Sprite, pos:Point):void{ 15 var lo:* = getLo(id); 16 var set:ParticleSetting = Loader.getRes(lo.path); 17 var part:Paritcle2D = Pool.getItemByClass(POOL_SIGN,Paritcle2D); 18 part.setParticleSetting(set); 19 part.autoPlay = false; 20 target.addChild(part); 21 part.pos(pos.x,pos.y,true); 22 //延迟调用,因为粒子需要先确认当前位置 23 callLater(this,playBase,[part,lo.recoverDuration]); 24 } 25 public function playBase(part:Paritcle2D,recoverDuration:int):void{ 26 part.stop(); 27 part.start(); 28 part.play(); 29 once(recoverDuration,this,recover,[part],false); 30 } 31 32 /** 33 * 回收到内存池 34 */ 35 public function recover(part:Paritcle2D):void{ 36 p.removeSelf(); 37 p.setParticleSetting(null); 38 Pool.recover(POOL_SIGN,part); 39 }