Ball ball1; Ball ball2; float accel = 0.1;//acceleration - only global variable void setup() { size(800,800); ball1 = new Ball(50,0,3,16); ball2 = new Ball(100,50,5,32); } void draw() { background(100); ball1.display(); ball2.display(); ball1.reflect(); ball2.reflect(); } class Ball { float x;//horizontal position of ball float y;//vertical position of ball float xspeed;//horizontal speed of ball float yspeed;//vertical position of ball float w; //size of ball Ball(float tempx, float tempy, float tempxspeed, float tempw) { x = tempx; y = tempy; xspeed = tempxspeed; w = tempw; yspeed = 0;//initial yspeed always zero, not required as parameter } void display() { ellipse(x,y,w,w); x = x + xspeed; y = y + yspeed; yspeed = yspeed + accel; } void reflect() { if (y > height) { yspeed = yspeed * -0.95; } if (x < 0 || x > width) { xspeed = xspeed * -1.0; } } } |
Home > Past Workshops > 12/8/13 Adventures in Programming: Visualizing Physical and Math Systems > examples >