public override void affect(ref Particle[] particles) { int parts = particles.Length; for (int i = 0; i < parts; i++) { particles[i].vector *= strength; } }
public override void affect(ref Particle[] particles) { int parts = particles.Length; for (int i = 0; i < parts; i++) { if (particles[i].position.Y < level) particles[i].alive = false; } }
public void generateParticles(int amnt) { int curPos = 0; for (int i = 0; i < amnt; i++) { bool placed = false; while (!placed) { if (!particles[curPos].alive) { Vector3 randomPos = new Vector3((float)(0.5 - rnd.NextDouble()), (float)(rnd.NextDouble() * 0.5f), (float)(0.5 - rnd.NextDouble())) * spreadRadius * 2; Particle curPat = new Particle(randomPos); curPat.rendertype = rnd.Next(meshes.Length); curPat.size = particleSize; curPat.spawnTime = gameWindow.frameTime; curPat.lifeTime = particleLifeTime; curPat.alive = true; particles[curPos] = curPat; placed = true; } curPos++; if (curPos == particles.Length) { return; } } } }
public virtual void affect(ref Particle[] particles) { }
public override void affect(ref Particle[] particles) { int parts = particles.Length; float timestamp = gameWindow.frameTime; for (int i = 0; i < parts; i++) { if (particles[i].spawnTime + particles[i].lifeTime < timestamp) particles[i].alive = false; } }