XNA でパーティクル システムを作成しており、2 つのパーティクル エフェクトを作成しようとしています。花火の爆発と噴水の花火。
私が抱えている問題は、爆発に新しいパーティクルを追加すると(すべて同時にスポーンさせたいので、これを高速に行っているため)、フレームレートが大幅に低下することです。
これを改善するための解決策があるかどうか疑問に思っていました。公式の例では queue メソッドを使用していることがわかりました。これは私が直面している問題に役立ちますか? または、開始時にこれらすべてのパーティクルをキューにロードする必要があるため、プログラムのロードが遅くなりますか?
新しい粒子を追加:
if (isActive)
{
timeSinceLastEmission += gameTime.ElapsedGameTime.Milliseconds;
if (emitterFrequency == 0 || timeSinceLastEmission >= emitterFrequency)
{
emitterFrequency = emissionInterval;
for (int i = 0; i < Math.Round(timeSinceLastEmission / emitterFrequency); i++)
{
if (particleList.Count < MaxParticles)
addParticle();
}
timeSinceLastEmission = 0;
}
}
描画機能 :
public void draw(SpriteBatch spriteBatch)
{
spriteBatch.Begin();
for (int i = 0; i < particleList.Count; i++)
{
spriteBatch.Draw(particleList[i].texture,
particleList[i].position,
null,
particleList[i].color,
particleList[i].rotation,
particleList[i].origin,
particleList[i].textureScale,
SpriteEffects.None,
0);
}
spriteBatch.End();
}
どんな助けでも大歓迎です。