topical media & game development

talk show tell print

graphic-processing-site-examples-Topics-Simulate-SimpleParticleSystem-ParticleSystem.pde / pde



  // A class to describe a group of Particles
  // An ArrayList is used to manage the list of Particles 
  
  class ParticleSystem {
  
    ArrayList particles;    // An arraylist for all the particles
    PVector origin;        // An origin point for where particles are born
  
    ParticleSystem(int num, PVector v) {
      particles = new ArrayList();              // Initialize the arraylist
      origin = v.get();                        // Store the origin point
      for (int i = 0; i < num; i++) {
        particles.add(new Particle(origin));    // Add "num" amount of particles to the arraylist
      }
    }
  
    void run() {
      // Cycle through the ArrayList backwards b/c we are deleting
      for (int i = particles.size()-1; i >= 0; i--) {
        Particle p = (Particle) particles.get(i);
        p.run();
        if (p.dead()) {
          particles.remove(i);
        }
      }
    }
  
    void addParticle() {
      particles.add(new Particle(origin));
    }
    
      void addParticle(float x, float y) {
      particles.add(new Particle(new PVector(x,y)));
    }
  
    void addParticle(Particle p) {
      particles.add(p);
    }
  
    // A method to test if the particle system still has particles
    boolean dead() {
      if (particles.isEmpty()) {
        return true;
      } else {
        return false;
      }
    }
  
  }
  
  


(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.