Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- List shapes = new ArrayList();
- void setup()
- {
- size(800, 800);
- smooth();
- for(int i = 0; i < 100; i++)
- if(i % 2 == 0)
- shapes.add(new Square());
- else
- shapes.add(new Circle());
- }
- void draw()
- {
- background(255, 255, 255);
- Iterator i = shapes.iterator();
- while(i.hasNext())
- {
- ((Shape)i.next()).drawAndStep();
- }
- }
- abstract class Shape
- {
- float x, y, r, xdir, ydir;
- color f, s;
- Shape()
- {
- x = random(width/4, width/2);
- y = random(height/4, height/2);
- r = random(20, 40);
- xdir = random(-10, 10);
- ydir = random(-10, 10);
- color rc = color((int)random(255), (int)random(255), (int)random(255));
- f = color(rc, 100);
- s = color(rc, 200);
- }
- void drawAndStep()
- {
- fill(f);
- stroke(s);
- strokeWeight(2);
- draw();
- x+=xdir;
- y+=ydir;
- if(x + r/2 >= width || x - r/2 <= 0)
- xdir *= -1;
- if(y + r/2 >= height || y - r/2 <= 0)
- ydir *= -1;
- }
- abstract void draw();
- }
- class Square extends Shape
- {
- void draw()
- {
- rectMode(CENTER);
- rect(x, y, r, r);
- }
- }
- class Circle extends Shape
- {
- void draw()
- {
- ellipse(x, y, r, r);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement