Assignment#4 client program. Please cut and paste into your Processing program and use "Tool->Auto Format" to reformat. //----snip here--- // Street Lights...
// The array of StreetLight objects.... StreetLight[] lights;
void setup() {
size(800, 600); smooth(); background(255); frameRate(30);
// these variables are used in creating the street lights float x, y, m = -0.375, c; float h = 500, distance = 300; // Create 6 street lights lights = new StreetLight[6];
x = 100; // x location of first street light c = height-10; // the intercept for locating the rest of lights for (int i = 0; i < 6; i++) { y = m*x+c; // create a new light at <x, y> of height h lights[i] = new StreetLight(x, y, h);
h = h*0.75; distance = distance*0.75; x += distance; } } // setup
void draw() {
drawScene();
fill(255);
int i;
// first draw all the lights (in their current state) for (i = 0; i < 6; i++) lights[i].display();
// randomly turn some light on/off if ((frameCount%150) == 0) { i = (int)random(6); if (lights[i].isOn()) { lights[i].turnOff(); } else { lights[i].turnOn(); } } } // draw
void drawScene() { // draws the street scene... // curb smooth(); fill(0); noStroke(); quad(25, height, width, 300, width, 315, 150, height);
// sidewalk noStroke(); // fill(85, 82, 77); fill(90, 55, 39); beginShape(); vertex(0, height-250); vertex(width, 220); vertex(width, 301); vertex(26, height); vertex(0, height); vertex(0, height-250); endShape(CLOSE);
// dark background noStroke(); fill(98, 73, 76); quad(0, height-249, width, 221, width, 0, 0, 0);
// road noStroke(); fill(75); triangle(149, height, width, 314, width, height); } // drawScene
//---snip---
The StreetLight class will have the following structure...
//---snip---
class StreetLight {
//---Define class variables here--- boolean on;
// constructor StreetLight(float tx, float ty, float th) { //---define your constructor and initial values here--- on = false; }
boolean isOn() { return on; }
void turnOn() { on = true; }
void turnOff() { on = false; }
void display() { drawLight(); }
void drawLight() {
// draw the street light here }
} // end of class StreetLight
//---snip