a port of the Processing Visualization Language

Bounce

When the shape hits the edge of the window, it reverses its direction.

Original Processing.org Example: Bounce

// All Examples Written by Casey Reas and Ben Fry

// unless otherwise stated.

int size = 60;       // Width of the shape

float xpos, ypos;    // Starting position of shape    



float xspeed = 2.8;  // Speed of the shape

float yspeed = 2.2;  // Speed of the shape



int xdirection = 1;  // Left or Right

int ydirection = 1;  // Top to Bottom





void setup() 

{

  size(200, 200);

  noStroke();

  frameRate(30);

  smooth();

  // Set the starting position of the shape

  xpos = width/2;

  ypos = height/2;

}



void draw() 

{

  background(102);

  

  // Update the position of the shape

  xpos = xpos + ( xspeed * xdirection );

  ypos = ypos + ( yspeed * ydirection );

  

  // Test to see if the shape exceeds the boundaries of the screen

  // If it does, reverse its direction by multiplying by -1

  if (xpos > width-size || xpos < 0) {

    xdirection *= -1;

  }

  if (ypos > height-size || ypos < 0) {

    ydirection *= -1;

  }



  // Draw the shape

  ellipse(xpos+size/2, ypos+size/2, size, size);

}
Fork me on GitHub