Hello Mouse

Un programma scritto sotto forma di lista di istruzioni (come gli esempi precedenti) è detto sketch in modalità statica.
Nella modalità statica, si utilizzano una serie di funzioni per eseguire dei compiti o per creare una singola immagine, senza animazioni o interazione.

I programmi interattivi si progettano attraverso una serie di fotogrammi, che possono essere creati aggiungendo le funzioni setup() e draw() come mostrato negli esempi seguenti.

Si tratta di funzioni predefinite eseguite automaticamente.


La funzione setup() può essere essere usata per le inizializzazioni (nel nostro esempio, impostare le dimensioni della finestra, rendere lo sfondo arancione e impostare il colore della matita a bianco).

Il blocco draw() è usato per gestire l’animazione.
La funzione size() deve comparire sempre come prima linea di setup().
Siccome la funzione background() è usata solo una volta, lo schermo si riempirà di linee appena verrà mosso il mouse.

void setup()
{
    size(500, 500);
    stroke(255);
    background(192, 64, 0);
}

void draw()
{
    line(250, 250, mouseX, mouseY);
}

Per disegnare una sola linea che segue il mouse bisogna spostare la funzione background() nella funzione draw().

In questo modo l’esecuzione di background() pulirà la finestra di visualizzazione (colorandola di arancione) ogni volta che verrà eseguita draw().

I programmi in modalità statica sono usati soprattutto per esempi estremamente semplici, o per script che eseguono un compito lineare e poi terminano.
Per esempio, un programma in modalità statica può iniziare, disegnare una pagina su un file PDF, e uscire.
La maggior parte dei programmi utilizzeranno la modalità attiva, la quale usa i blocchi setup() e draw().

void setup()
{
    size(500, 500);
    stroke(255);
}
void draw()
{
    background(192, 64, 0);
    line(250, 250, mouseX, mouseY);
}

Possono essere introdotte modalità di gestione del mouse più elaborate.
Per esempio, la funzione mousePressed() sarà chiamata ogni volta che il mouse viene premuto.

Come nell’esempio seguente: quando il mouse viene premuto, lo schermo viene pulito tramite la funzione background().

void setup()
{
    size(500, 500);
    stroke(255);
}
void draw()
{
    line(500, 500, mouseX, mouseY);
}
void mousePressed()
{
    background(192, 64, 0);
}