Pixi.js: 屏幕上的大量粒子容器创造了令人敬畏的迷幻爆炸

创建于 2018-08-05  ·  3评论  ·  资料来源: pixijs/pixi.js

预期行为

我正在开发一个游戏,当 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:
regularcontainer

这是问题之一:
particlecontainerexplosion

  • pixi.js版本:_e.g. 4.8.1
  • 浏览器:_e.g. 铬 67.0.3396.99
  • 设备:_e.g. 桌面_OS_X

最有用的评论

所以事实证明,我实际上只是对这个很傻。 在追查了一些错误的线索后,我发现我的效果的强度参数错误地与帧率相关联,以便在游戏滞后时使它们更快地消失。 然而,我的数学是错误的,它实际上使他们的强度增加,这进一步拖延了比赛,开始了恶性循环。 顺便说一句,我发现在我的用例中,常规容器的性能似乎比粒子容器略高。

所有3条评论

这不是错误,这是功能!

所以事实证明,我实际上只是对这个很傻。 在追查了一些错误的线索后,我发现我的效果的强度参数错误地与帧率相关联,以便在游戏滞后时使它们更快地消失。 然而,我的数学是错误的,它实际上使他们的强度增加,这进一步拖延了比赛,开始了恶性循环。 顺便说一句,我发现在我的用例中,常规容器的性能似乎比粒子容器略高。

由于关闭后没有任何近期活动,因此该线程已自动锁定。 请为相关错误打开一个新问题。

此页面是否有帮助?
0 / 5 - 0 等级