Mousepressed variable does not exist?

Hello,

When using the code below, the IDE marks mousePressed red and the error message is "expecting LPAREN, found ‘mousePressed’
Looking around did not help me so far. I am using version 3.5.4.

Thanks,

Stephan

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;
  }
1 Like

I guess the error is somewhere else

Can you post your entire code?

There is mousePressed as a variable like in your code and mousePressed() with the brackets as a function.

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;
}
1 Like

Yes, that’s correct. Indeed. it would not work anymore if you did

Your code works here, I have to say

Strange. Maybe… you posted it from somewhere and there’s a special character?

Restart processing, re-type if (!m in the line manually? I don’t know

Since when doesn’t it work anymore? Did it use to work previously?

1 Like

Thanks.
I did restart processing and this helped. I still do not understand why it did not work…
It was my first time using processing (coming from Java).

1 Like

I don’t understand it either

Processing had Hick-up :wink: