Eventi: mousePressed() e keyPressed()

6 pensieri su “Eventi: mousePressed() e keyPressed()”

  1. Tratto da Reference – mouseClicked()

    
    // Click within the image and press
    // the left and right mouse buttons to 
    // change the value of the rectangle
    void draw() {
      rect(25, 25, 50, 50);
    }
    
    void mousePressed() {
      if (mouseButton == LEFT) {
        fill(0);
      } else if (mouseButton == RIGHT) {
        fill(255);
      } else {
        fill(126);
      }
    }
    

    Ho provato questo piccolo sketch e non sono riuscito ad interpretare la presenza delle istruzioni dall’else fino alla penultima parentesi graffa, tanto che eliminandole il risultato grafico √® sempre lo stesso. Cosa mi sfugge? Grazie.

    1. Ciao Enrico, se stai seguendo le mie guide prova a guardare quella relativa ai controlli condizionali. In ogni caso il codice che hai copiato si interpreta così:

      Quando il mouse viene premuto:

      void mousePressed() { } 

      Se viene premuto il pulsante di sinistra, colora il riempimento di nero

      if (mouseButton == LEFT) {
          fill(0);
        }

      Se viene premuto il pulsante di destra del mouse, colora il riempimento di bianco

      else if (mouseButton == RIGHT) {
          fill(255);
        }

      Altrimenti coloraro di grigio

      else {
          fill(126);
        }

      √ą chiaro che questa ultima opzione viene chiamata solo nel caso una persona disponga di un mouse con pi√Ļ di due pulsanti.

  2. Se ho un’immagine al centro e in basso una barra con 4 rettangoli e in ognuno di questi deve attivarsi un filtro sull’immagine ogni qualvolta il mouse clicchi su uno di loro, che codice devo variabile Built in mouseX e mouseY devo usare all’interno della funzione draw?

    1. Esatto: tramite mouseX e mouseY verifichi se il mouse si trova sopra un pulsante e con mousePressed verifichi il click del mouse.

  3. Ciao, ho nel size 3 cerchi. Vorrei poterci cliccare sopra sul mouse e trasformare lo sfondo da bianco a nero. Per questo utilizzo mouse Pressed. Tuttavia, però, voglio poter lavorare su un cerchio per volta. Cioè: clicco su un cerchio e trasformo lo sfondo solo di quel cerchio cliccato. Come posso fare?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.