我正在开发一个游戏,当 2 个物体相遇时,1 个吸收另一个,然后我使用粒子容器和一些精灵创建吸收效果。 然而,如果我一次在屏幕上有太多这些效果,它会产生无限的迷幻爆炸,这有点棒,但并不是我真正想要的。 但是,如果我从particleContainer 更改为常规容器,问题就会消失。 此外,只有在屏幕上一次有大量粒子容器时才会出现此问题。 如果有任何更少,它不会发生。
更新:当游戏在移动浏览器中运行时,常规 pixi 容器实际上仍然会发生这种情况,所以可能是内存限制问题?
这是每个效果的视图层次结构:
PIXI.Container // Effect main container. Gets scaled/positioned
PIXI.Sprite // This is an overall glow
PIXI.particles.ParticleContainer // This is the streaks effect
PIXI.Sprite[] // Individual streak of light. Gets rotated and alpha'ed
这是它应该是什么样子的gif:
这是问题之一:
pixi.js
版本:_e.g. 4.8.1这不是错误,这是功能!
所以事实证明,我实际上只是对这个很傻。 在追查了一些错误的线索后,我发现我的效果的强度参数错误地与帧率相关联,以便在游戏滞后时使它们更快地消失。 然而,我的数学是错误的,它实际上使他们的强度增加,这进一步拖延了比赛,开始了恶性循环。 顺便说一句,我发现在我的用例中,常规容器的性能似乎比粒子容器略高。
由于关闭后没有任何近期活动,因此该线程已自动锁定。 请为相关错误打开一个新问题。
最有用的评论
所以事实证明,我实际上只是对这个很傻。 在追查了一些错误的线索后,我发现我的效果的强度参数错误地与帧率相关联,以便在游戏滞后时使它们更快地消失。 然而,我的数学是错误的,它实际上使他们的强度增加,这进一步拖延了比赛,开始了恶性循环。 顺便说一句,我发现在我的用例中,常规容器的性能似乎比粒子容器略高。