float left=20, right=250, top=40, bottom=350; float net= (l35); float ballX=90, ballY=2001, ballDX=3, ballDY=0.2; float ball2X=90, ball2Y=2001, ball2DX=3, ball2DY=0.2; float DX, DY; void draw () { //next frame background(255); scene(); action(); } void setup () { size(500,500); reset(); } void reset () { // Reset ballX= left+50; ballY= top+30; ball2X= left+20; ball2Y= top+50; } void scene() { //// Table fill( 100,200,100 ); strokeWeight(5); stroke( 100,30,0 ); rectMode(CORNERS); rect( left, top, right, bottom ); ellipse(left, top, 30, 30); ellipse(right, bottom, 30, 30); line (net, top, net, bottom); } void action() { myball(); myball2(); } void myball() { //// Check boundaries, move ball, draw it. //make the 2 balls go in the 2 pockets if (ballX > right || ballX< left) ballDX= -ballDX; ballX= ballX + ballDX; ballY= ballY + ballDY; fill( 10,10,255 ); noStroke(); ellipse( ballX, ballY, 30, 30 ); } void myball2() { //// Check boundaries, move ball, draw it. if (ball2X > right || ball2X< left) ball2DX= -ball2DX; ball2X= ball2X + ball2DX; ball2Y= ball2Y + ball2DY; fill( 255,0,255 ); noStroke(); ellipse( ball2X, ball2Y, 30, 30 ); } void keyPressed () { if (key == 'q') exit(); if (key == 'r') reset(); }