// FreezeDemo D. Parson 3/20/2018 // Find "isFrozen" below to see how to freeze & unfreeze the display for debugging. boolean isFrozen = false ; // keyPressed() 'f' toggles for debugging // Example 9-9: An array of Car objects // An array of 100 Car objects! Car[] cars = new Car[180]; void setup() { size(480, 360); // Initialize each Car using a for loop. for (int i = 0; i < cars.length; i ++ ) { cars[i] = new Car(color(i*2), 0, i*2, i/20.0); } } void draw() { if (isFrozen) { return ; } background(255); // Run each Car using a for loop. for (int i = 0; i < cars.length; i++) { cars[i].move(); cars[i].display(); } } void keyPressed() { if (key == 'f') { isFrozen = ! isFrozen ; // toggle isFrozen from true to false, or false to true } } // The Car class does not change whether one car, // 100 cars or 1,000 cars! class Car { color c; float xpos; float ypos; float xspeed; Car(color c_, float xpos_, float ypos_, float xspeed_) { c = c_; xpos = xpos_; ypos = ypos_; xspeed = xspeed_; } void display() { rectMode(CENTER); stroke(0); fill(c); rect(xpos,ypos,20,10); } void move() { xpos = xpos + xspeed; if (xpos > width) { xpos = 0; } } }