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 }
原文地址:https://www.cnblogs.com/ixenos/p/12988144.html