ok, code comes below.
Question added: I understood that the variable mousePressed is defined in Processing, thus I do not need to declare it, correct?
int x1, y1;
int x2, y2;
int x3, y3;
int x4, y4;
/* 
 * We define the speed variables here. Speed variables are
 * just integer values we add to or take from the coordinates. 
 * The larger we add or take, the faster balls will move. 
 * That's whe we call them speed. 
 */
int b1Speed=4;
int b2Speed=1;
int b3Speed=6;
int b4Speed=2;
/* 
 * We also set the rgb values for each ball as variables
 * here. Note that if we ever want to change the color of an 
 * object, this is how we can achieve that.
 */
int b1r=255, b1g=120, b1b=200;
int b2r=0, b2g=220, b2b=0;
int b3r=30, b3g=150, b3b=110;
int b4r=50, b4g=100, b4b=75;
void setup() {
  size(500, 500);
  // Call the method that sets the starting points (see below).
  setStartingPoints();
}
void draw() {
  // Set the background to white at each loop, so that 
  // balls doesn't leave a mark behind.
  background(255);
  // Set the strokes of the ball to black
  stroke(0);
  // Set the ellipseMode to CENTER so all the balls could
  // be aligned from the center.
  ellipseMode(CENTER);
  
  // Here, we set the fill of a ball and draw it. Next line,
  // we repeat the process, set the color of the next ball and
  // draw it again. We give the global color and coordinate 
  // varaiables instead of plain integer values like in the examples.
  fill(b1r, b1g, b1b);
  ellipse(x1, y1, 20, 20);
  fill(b2r, b2g, b2b);
  ellipse(x2, y2, 20, 20);
  fill(b3r, b3g, b3b);
  ellipse(x3, y3, 20, 20);
  fill(b4r, b4g, b4b);
  ellipse(x4, y4, 20, 20);
  
  // The lines in the if block are the ones that moves the ball.
  // This if says, "if mouse is not in a clicked state, move the
  // ball". That's why the balls freezes when the mouse is clicked.
  if (!mousePressed) {
    // These lines makes the balls move. It adds the speed variables
    // to relevant coordinates. When the coordinates change, the balls
    // location changes. Note that whichever direction the ball goes when
    // when we add the speed, it will go to the oposite direction when we subtract
    // the speed.
    x1+=b1Speed; 
    y1+=b1Speed;
    x2-=b2Speed; 
    y2+=b2Speed;
    x3+=b3Speed; 
    y3-=b3Speed;
    x4-=b4Speed; 
    y4-=b4Speed;
  }
}
// This method fires when the mouse is released.
void mouseReleased() {
  // This method call sets the balls position to its initial.
  setStartingPoints();
}
/* 
 * Here, we defined a method for setting the starting points
 * of the balls to their initial position. We could have used
 * these codes instead of defining a method and calling it, 
 * but this a better practice because there are multiple places we
 * set the balls coordinates to their initial values, at the
 * setup and after mouse button is released. And we don't want
 * code duplication.
 */
void setStartingPoints() {
  /* 
   * Note that 'width' and 'height' are global variables that
   * stores the size of the container. In this case, both are 500
   */
  x1=0;
  y1=0;
  x2=width;
  y2=0;
  x3=0;
  y3=height;
  x4=width;
  y4=height;
}