class Car
{
  //attributes of a Car
  color myColor;
  float mySize;
  boolean isOn;
  float myX;
  float myY;
  float mySpeed;
  
  //Constructor (how to make a Car)

  Car(float y)
  {
    myColor = color(random(0,255) , random(0,255) , random(0,255) );
    mySize = random(50,80);
    isOn = false;
    myX = random(0,800);
    myY = y;
    mySpeed = random(3,10);
  }
 
  //methods (things a Car can do)
  void drawYourself()
  {
    fill(myColor);
    rect(myX, myY, mySize, mySize);
    
    fill(255);
    ellipse(myX+5,        myY+mySize, 15, 15); //left tire
    ellipse(myX+mySize-5, myY+mySize, 15, 15); //left tire
  }
  
  void move()
  {
    if( isOn )
    {
      myX = myX + mySpeed;
    }
    if( myX > 800 )
    {
      myX = 0;
    }
  }
  
  boolean isMouseOnYou()
  {
    boolean xIsGood = (mouseX > myX) && (mouseX < myX+mySize);
    boolean yIsGood = (mouseY > myY) && (mouseY < myY+mySize);
    return (xIsGood && yIsGood);
  }
  boolean isThisPointOnYou(float x, float y)
  {
    boolean xIsGood = (x > myX) && (x < myX+mySize);
    boolean yIsGood = (y > myY) && (y < myY+mySize);
    return (xIsGood && yIsGood);
  }
  
  void startYourEngine()
  {
    isOn = true;
  }
  
  void changeYourEngine()
  {
    isOn = !isOn;
  }
}