|
using System;
using System.Drawing;
using System.Collections;
namespace ParticleSwarm {
public abstract class ParticleSystem {
protected bool running = false;
protected bool trace = false;
protected bool showVel = false;
protected bool showVelBox = false;
protected bool showAcc = false;
protected bool showAccBox = false;
protected bool detectCol = true;
protected Color backColor = Color.White;
protected Color fade;
protected ArrayList particles = new ArrayList();
public ParticleSystem() {
fade = Color.FromArgb(10, backColor.R, backColor.G, backColor.B);
}
public void Start(Graphics g, Rectangle bounds) {
running = true;
Draw(g, bounds);
}
public void Stop() {
running = false;
}
public abstract void Draw(Graphics g, Rectangle bounds);
public bool IsRunning {
get { return this.running; }
set { this.running = value; }
}
public bool Trace {
get { return trace; }
set { trace = value; }
}
public bool ShowVelocityVectors {
get { return showVel; }
set { showVel = value; }
}
public bool ShowVelocityBox {
get { return showVelBox; }
set { showVelBox = value; }
}
public bool ShowAccelerationVectors {
get { return showAcc; }
set { showAcc = value; }
}
public bool ShowAccelerationBox {
get { return showAccBox; }
set { showAccBox = value; }
}
public bool DetectCollisions {
get { return detectCol; }
set { detectCol = value; }
}
public Color BackgroundColor {
get { return backColor; }
set {
backColor = value;
trace = false;
System.Windows.Forms.Application.DoEvents();
trace = true;
}
}
public ArrayList Particles {
get { return this.particles; }
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.