| 
	 // c0.pde 
//// c0.pde (copy of d9_modular)
String title= "c0.pde:  Dynamic sketch (d9_modular).";
String hint="Click to reset creature.\n 'q' to quit.";
String author="B.A.Martin";
color RED=color(255,0,0), YELLOW=color(255,255,0), 
  BLUE=color(0,0,255), SKY=color(150,200,250);
// GLOBAL DECLARATIONS ////	
float sunX, sunY;        // Position of sun
float fredx, fredy;      // Position & speed
float freddx, freddy;   
//// SETUP:  Define screen size, set modes.
void setup() {
  size( 600, 400 );	
  sunX=  width/2;         // Start sun half-way 
  sunY=  50;    
  reset();
}
void reset() {	
  fredx=  width/2;            // Start in center.
  fredy=  height/2;
  freddx=  random( 1,3 );     // Random speed.
  freddy=  random( -1, +1 );
}   
 
//// DRAW:  sky & sun plus creature
void draw()
{
  scene();
  action();
  show();
  messages();      // (Display the messages last.)
}
//// SCENE:  sky, sun, house.
void scene() {
  background( SKY );                // Blue sky	
  fill( YELLOW );
  ellipse( sunX, sunY, 30, 30 );    // Yellow sun 
  fill( RED ); 
  rect( 100,100, 120,50 );     // House at (100,100)
  triangle( 100,100, 220,100, 160,50 ); 
}
//// ACTION:  
void action() { 
  if (sunX > width) {
    sunX=  0;
    sunY=  random( 20, 120 );
    background(YELLOW);
  }
  sunX=  sunX + 1;
  // Move the creature.
  fredx=  fredx + freddx;
  fredy=  fredy + freddy;
  if (fredx>width) reset(); 
}
//// SHOW:  creature
void show() { 
  // Draw creature.
  fill( 0, 0, 200 );
  rect( fredx,fredy, 50,80 );            // Blue body
  ellipse( fredx+25,fredy-20, 40,40 );   // Head on top
  // Eyes.
  fill( 255 );
  ellipse( fredx+15, fredy-25, 12, 12 );
  ellipse( fredx+35, fredy-25, 12, 12 );
  fill( 0, 150, 0 );
  ellipse( fredx+15, fredy-25, 4, 4 );
  ellipse( fredx+35, fredy-25, 4, 4 );  
} 
//// MESSAGES.
void messages() {
  fill(0);
  text( title, width/3, 10 );
  text( hint, 10, height/2 );
  text( "B.A.Martin", 10, height-10 );
}
//// EVENT HANDLERS ////
void mousePressed() {
  reset();
  // Set the position (x,y)
  fredx=  mouseX;
  fredy=  mouseY;
}
void keyPressed() {
  if (key == 'q') { exit(); }
  if (key == 'r') { reset(); }
  if (key == 's') { sunY += 50;  }
}
 |