之间有什么区别(我的程序速度 - 执行时间)?
第一个选项:
private void particleReInit(int loop)
{
this.particle[loop].active = true;
this.particle[loop].life = 1.0f;
this.particle[loop].fade = 0.3f * (float)(this.random.Next(100)) / 1000.0f + 0.003f;
this.particle[loop].r = colors[this.col][0]; // Select Red Rainbow Color
this.particle[loop].g = colors[this.col][1]; // Select Red Rainbow Color
this.particle[loop].b = colors[this.col][2]; // Select Red Rainbow Color
this.particle[loop].x = 0.0f;
this.particle[loop].y = 0.0f;
this.particle[loop].xi = 10.0f * (this.random.Next(120) - 60.0f);
this.particle[loop].yi = (-50.0f) * (this.random.Next(60)) - (30.0f);
this.particle[loop].xg = 0.0f;
this.particle[loop].yg = 0.8f;
this.particle[loop].size = 0.2f;
this.particle[loop].center = new PointF(particleTextures[0].Width / 2, particleTextures[0].Height / 2);
}
第二个选项:
Particle p = particle[loop];
p.active = true;
p.life = 1.0f;
...
WhereParticle particle[] = new Particle[NumberOfParticles];
只是一组具有生命、位置等属性的粒子。
我在 Visual Studio 2010 中像 WFA(Windows 窗体应用程序)一样执行此操作,并且需要提高性能(我们无法使用 OpenGL,因此对于更多粒子,我的程序往往很慢)。