[LayaAir 2.0]求救 Laya2.0下的Particle2D问题

//这是我laya1.0下的代码(控制飞船喷射的尾焰粒子),现在转到2.0出问题了
                if (!isFrame) {    //这个是开关,按键松开时isFrame=false,按下播放尾焰特效后就置为true
Laya.loader.load('../bin/testflame.part', Laya.Handler.create(this, (setting) => {
let frame = new Laya.Particle2D(setting);
let key = keyString;
let frameX;
let frameY;
let play = true;
let frameScale;
let frameRotation;
//问题在下面:
//如果首次传入E/Q,尾焰正常出现在需要的位置,但是这个粒子会“循环”播放,一会出现一会消失....
//如果首次传入W/S,尾焰粒子播不出来,需要先播一次E或者Q才会播放出来...我检查了代码,确实找不出有啥问题,换回1.0又是正常的,只能来这里请教了

switch (key) {
case 'E':
frameX = sprite.pivotX * 2;
frameY = sprite.pivotY;
frameRotation = 0;
frame.scaleX = 1;
frame.scaleY = 1;
break;
case 'Q':
frameX = sprite.pivotX * 2;
frameY = sprite.pivotY;
frameRotation = 180;
frame.scaleX = 1;
frame.scaleY = 1;
break;
case 'W':
frameX = 0;
frameY = sprite.pivotY;
frameRotation = -90;
frame.scaleX = 1;
frame.scaleY = 1;
break;
case 'S':
frameX = sprite.pivotX * 2;
frameY = sprite.pivotY;
frameRotation= 90;
frame.scaleX = 1;
frame.scaleY = 1;
break;
case 'Delet':
play = false;
break;

}

if (play) {
frame.rotation=frameRotation;
sprite.addChild(frame);
frame.pos(frameX, frameY);
frame.emitter.start();
frame.play();
} else {
sprite.removeChildren();
}


}));
}
else {
return;
}
}
已邀请:

赛巴斯

赞同来自:

经几次测试,发现,不管传入啥,只要第一次sprite.addChild(frame);
frame.rotation = 0 或者180 ,就可以.....

要回复问题请先

商务合作
商务合作