Laya 2.5引擎循环播放的粒子特效闪烁问题解决方案

临时解决方案: 替换 laya.d3.js 库中刷新粒子的两个方法

_retireActiveParticles() {
const epsilon = 0.0001;
while (this._firstActiveElement != this._firstNewElement) {
var m = this.maxParticles == 1 ? 4 : 1;
var index = this._firstActiveElement * this._floatCountPerVertex * this._vertexStride * m;
var timeIndex = index + this._timeIndex;
var particleAge = this._currentTime - this._vertices[timeIndex];
if (particleAge + epsilon < this._vertices[index + this._startLifeTimeIndex])
break;
this._vertices[timeIndex] = this._drawCounter;
this._firstActiveElement++;
if (this._firstActiveElement >= this._bufferMaxParticles)
this._firstActiveElement = 0;
if(this.maxParticles == 1){
this._firstNewElement = 0;
this._firstFreeElement = 0;
}
}
}
_freeRetiredParticles() {
while (this._firstRetiredElement != this._firstActiveElement) {
var m = this.maxParticles == 1 ? 4 : 1;
var age = this._drawCounter - this._vertices[this._firstRetiredElement * this._floatCountPerVertex * this._vertexStride * m + this._timeIndex];
if (this.isPerformanceMode)
if (age < 3)
break;
this._firstRetiredElement++;
if (this._firstRetiredElement >= this._bufferMaxParticles)
this._firstRetiredElement = 0;
}
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值