Alphabets Fountain

Here I used the code from the class where we made lots of colourful spheres coming out, and I replaced the spheres to alphabets. The result looks like below.

Screen Shot 2015-11-14 at 12.03.14 AM

The codings for this are below.

ArrayList<Alphabet> alphabets;

void setup() {
 size(800, 600);
 //noStroke();
 alphabets = new ArrayList<Alphabet>();
 alphabets.add(new Alphabet());
  background(255);
}

void draw() {
 background(255);
 alphabets.add(new Alphabet());
 
 for (Alphabet a : alphabets) {
  a.update();
  a.render();
  a.bounds();   
 }
 
 if(alphabets.size() > 100 ){
   alphabets.remove(0);
}
}
class Alphabet {
  //variables for the object
  float xPos;
  float yPos;
  float xSpeed;
  float ySpeed;
  float diam;
  color c;
  String[] alphas = {"a", "b", "c", "d", "e", "f", "g" , "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};
  int index = int(random(alphas.length));
  
  Alphabet() {
    //
    c = color(random(0, 255), random(0, 255), random(0, 255));
    textSize(24);
    xPos = mouseX;
    yPos = mouseY;
    xSpeed = random(-3., 5.);
    ySpeed = random(-3., 5.);
    diam =  100;  
  }
  
  Alphabet(float x_, float y_, float d_) { 
  // this is the constructor  
    c = color(random(0, 255), random(0, 255), random(0, 255));
    xPos = x_;
    yPos = y_;
    xSpeed = random(-3., 5.);
    ySpeed = random(-3., 5.);
    diam = d_;  
  }
  //declare all my functionsa
  void render() {
    fill(c);
  text(alphas[index], xPos, yPos);
  }

  void update() {
  xPos += xSpeed;
  yPos += ySpeed;
  }

  void bounds() {  
    if (xPos >= width || xPos <= 0) {
    xSpeed = xSpeed *-1 ;
    }
    if (yPos >= height || yPos <= 0) {
    ySpeed = ySpeed *-1 ;
    }
  }
}

The problem I faced making this homework is that at first I didn’t know how to make the alphabets coming out randomly. However, I figured out quickly when I searched it online and it was actually pretty easy (just have to remember how to do it).

 

Leave a Reply