float birdX=100, birdY=30; // Bird position float birdDX=2, birdDY=1; // Bird speed float horizon=200; float sunX=325; int rate=50; void setup() { size(500,500); frameRate(rate); } void mousePressed() { //// birdX= 50; birdY= random(0,horizon); } void keyPressed() { //// Handle keys //// if (key == '+') { birdDX= birdDX * 1.5; birdDY= birdDY * 1.5; } else if (key == '-') { birdDX= birdDX * 0.8 ; birdDY= birdDY * 0.8 ; } else if (key == 'q') { exit(); } } void draw() //// Draw the frame { scene(); bird(); // Do the bird stuff //body// smooth(); rectMode(CENTER); fill(255,150,0); rect( 400,215, 25, 80 ); line( 388, 250, 350, 300); } void bird() { //// Move & show bird // check for boundaries - reverse dir if (birdX<10 || birdX>width-80) { birdDX= -birdDX; } if (birdY<0 || birdY>horizon-70) { birdDY= -birdDY; } birdX= birdX+birdDX; // move bird birdY= birdY+birdDY; smooth(); fill(255,255,255); //-- triangle(25, 25, 75, 50, 25, 75); triangle(birdX+25, birdY+25, birdX+75, birdY+50, birdX+25, birdY+75); //head// smooth(); fill(250,255,120); ellipseMode(CENTER); ellipse(400,150,55,55); } void scene() { //// Make a scene. rectMode(CORNER); //sky// //-- fill(0,0,255); //-- rect(0,0,500,horizon); background( 150, 200, 250 ); //grass// fill(0,255,0); rect(0,horizon,500,500); //sun// smooth(); ellipseMode(CENTER); fill(255,255,0); ellipse(sunX, 70, 50,50); sunX += 0.2; if (sunX > width) sunX= 0; // fill(0); textSize(14); text ( "+/- for bird speed-up / slow-down", 10, 20 ); text ( "Press q key to quit.", 10,35 ); }