私は、2つのオブジェクトが出会うと、一方が他方を吸収し、パーティクルコンテナといくつかのスプライトを使用して吸収効果を作成するゲームに取り組んでいます。 ただし、一度に画面にこれらの効果が多すぎると、無限のサイケデリックな爆発が発生します。これは素晴らしいことですが、実際には私が望んでいたことではありません。 ただし、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です:
そして、ここに問題の1つがあります:
pixi.js
バージョン:_e.g。 4.8.1これはバグではありません、これは機能です!
だから、私は実際にはこれに馬鹿げていることがわかりました。 いくつかの誤ったリードを追跡した後、ゲームが遅れている場合にエフェクトのフェードを速くするために、エフェクトの強度パラメータがフレームレートに誤って関連付けられていることを発見しました。 しかし、私の計算は間違っていて、実際には強度が増し、ゲームがさらに遅れ、悪循環が始まりました。 ちなみに、私のユースケースでは、通常のコンテナの方がパーティクルコンテナよりもパフォーマンスがわずかに高いように見えることがわかりました。
このスレッドは、閉じられた後に最近のアクティビティがないため、自動的にロックされています。 関連するバグについては、新しい問題を開いてください。
最も参考になるコメント
だから、私は実際にはこれに馬鹿げていることがわかりました。 いくつかの誤ったリードを追跡した後、ゲームが遅れている場合にエフェクトのフェードを速くするために、エフェクトの強度パラメータがフレームレートに誤って関連付けられていることを発見しました。 しかし、私の計算は間違っていて、実際には強度が増し、ゲームがさらに遅れ、悪循環が始まりました。 ちなみに、私のユースケースでは、通常のコンテナの方がパーティクルコンテナよりもパフォーマンスがわずかに高いように見えることがわかりました。