Funciones para Trabajar con el Ratón en Processing

Processing proporciona varias funciones y variables para interactuar con el ratón, permitiendo detectar eventos como la posición del cursor, clics y el desplazamiento. A continuación, se explican las principales funciones y variables para trabajar con el ratón.

1. Funciones Principales

1.1 mousePressed()

Esta función se ejecuta una vez cada vez que se presiona uno de los botones del ratón.

void mousePressed() {
  println("Ratón presionado en posición: (" + mouseX + ", " + mouseY + ")");
}

1.2 mouseReleased()

Se ejecuta cuando se suelta el botón del ratón.

void mouseReleased() {
  println("Ratón soltado en posición: (" + mouseX + ", " + mouseY + ")");
}

1.3 mouseClicked()

Esta función se ejecuta cada vez que se realiza un clic, es decir, cuando el botón del ratón se presiona y se suelta rápidamente.

void mouseClicked() {
  println("Clic realizado en posición: (" + mouseX + ", " + mouseY + ")");
}

1.4 mouseDragged()

Se ejecuta cuando se mueve el ratón mientras se mantiene presionado uno de sus botones.

void mouseDragged() {
  println("Ratón arrastrado en posición: (" + mouseX + ", " + mouseY + ")");
}

1.5 mouseMoved()

Esta función se activa cada vez que el ratón se mueve, sin que se presione ningún botón.

void mouseMoved() {
  println("Ratón movido a posición: (" + mouseX + ", " + mouseY + ")");
}

2. Variables Relacionadas con el Ratón

2.1 mouseX y mouseY

Estas variables contienen las coordenadas X e Y actuales del ratón en la ventana del sketch.

void draw() {
  println("Posición del ratón: (" + mouseX + ", " + mouseY + ")");
}

2.2 pmouseX y pmouseY

Contienen las coordenadas X e Y del ratón en el cuadro anterior, permitiendo calcular el movimiento del ratón.

void draw() {
  line(pmouseX, pmouseY, mouseX, mouseY);  // Dibuja una línea que sigue el movimiento del ratón
}

2.3 mouseButton

Indica qué botón del ratón ha sido presionado. Puede ser LEFT, RIGHT, o CENTER.

void mousePressed() {
  if (mouseButton == LEFT) {
    println("Botón izquierdo presionado");
  } else if (mouseButton == RIGHT) {
    println("Botón derecho presionado");
  } else if (mouseButton == CENTER) {
    println("Botón central presionado");
  }
}

3. Ejemplo Completo de Interacción con el Ratón

Este ejemplo muestra cómo cambiar el color de fondo haciendo clic con el ratón y dibujar una elipse en la posición del ratón cuando se arrastra.

color bgColor = 255;

void setup() {
  size(400, 400);
}

void draw() {
  background(bgColor);
  if (mousePressed && mouseButton == LEFT) {
    fill(0, 102, 153);
    ellipse(mouseX, mouseY, 20, 20);
  }
}

void mouseClicked() {
  bgColor = color(random(255), random(255), random(255));
}

Resumen

Estas funciones y variables permiten detectar y manejar eventos de ratón en Processing, proporcionando gran flexibilidad para crear interacciones en tus sketches.