# Lecture 07

While{} blocK:

 int a = 0; int b = 1; int sum = a+b;   while (sum < 10000) { // some boolean test! println(sum); a = b; b = sum; sum = a+b; }

Trigger an event periodically:

 int poopPeriod = 3000; int lastPoopTime = 0;   void setup(){ }   void draw(){ if ((millis() - lastPoopTime) >= poopPeriod) { poop(); } }   void poop(){ // only printed output for now; visuals are up to you println("At " + millis() + ", I pooped"); lastPoopTime = millis(); }

Function that returns a value:

 void setup(){ int mySum = addThreeInts (3,8,11); float f = cos(4.0); println("My Sum = " + mySum); }   int addThreeInts (int a, int b, int c){ int sum = a + b + c; return sum; }

Interpolation (Blurred Integrator / “Zeno’s Interpolation”) to the Mouse

 float px = 0; float py = 0;   void setup(){ size(400,400); }   void draw(){ background(127);   float A = 0.95; float B = 1.0-A; px = A*px + B*mouseX; py = A*py + B*mouseY; ellipse (px,py, 30,30); }

Damping a variable down to zero / Triggering an event sequence

 float py, px; float vy, vx; void setup(){ size(400,400); initiateMovementSequence(); }   void draw(){ float grayColor = map(px, 0,width, 0,255); background(grayColor); py += vy; px += vx; vy *= 0.96; vx *= 0.96; ellipse(px,py, 30,30); }   void mousePressed(){ // clicking resets the action initiateMovementSequence(); }   void initiateMovementSequence(){ px = width/2; py = height/2; vx = random(-5,5); vy = random(-5,5); }

Simple Pong

 float px, py; float vx, vy; float diam = 80;     void setup(){ size(400,350); px = width/2; py = height/2; vx = random(-10,10); vy = random(-10,10); }     void draw(){ background(127); px += vx; py += vy; if ((px < (diam/2)) || (px > (width - diam/2))){ vx = -vx; } if ((py < (diam/2)) || (py > (height - diam/2))){ vy = -vy; }   ellipse(px,py, 80,80); }   void mousePressed(){ // clicking the mouse randomizes direction vx = random(-10,10); vy = random(-10,10); }

Libraries:
Speech synthesizer…
Audio input…