Processing permette di programmare a tre livelli di complessità: base, continua e Java.
I principianti dovrebbero cominciare con la modalità base per imparare l’uso delle coordinate, delle variabili, dei cicli… prima di passare alle modalità continua e Java.
Base
Questa modalità si utilizza per disegnare immagini statiche e per impare le basi della programmazione.
Le semplici linee di codice hanno una corrispondenza diretta con lo schermo.
L’esempio seguente disegna un rettangolo giallo sullo schermo:
size(200, 200); background(255); noStroke(); fill(255, 204, 0); rect(30, 20, 50, 50);
Continua
Questa modalità fornisce una struttura setup() che viene eseguita una volta quando si lancia il programma e una strutturadraw() che per default continua a eseguire il codice al suo interno. Inoltre si possono scrivere funzioni e classi personalizzate e utilizzare gli eventi della tastiera e del mouse.
Il prossimo esempio disegna 4 cerchi sullo schermo e utilizza una funzione chiamata circles().
La funzione circles() non appartiene al linguaggio Processing, ma è stata scritta per questo esempio.
Il codice all’interno di draw() sarà eseguito una sola volta perché in setup() c’è la chiamata di noLoop().
void setup() { size(200, 200); noStroke(); background(255); fill(0, 102, 153, 204); smooth(); noLoop(); } void draw() { circles(40, 80); circles(90, 70); } void circles(int x, int y) { ellipse(x, y, 50, 50); ellipse(x+20, y+20, 60, 60); }
Il prossimo esempio disegna rettangoli che seguono il mouse (la posizione del mouse è memorizzata nelle variabili di sistemamouseX e mouseY).
Il blocco draw() viene eseguito finché il programma non sarà fermato, creando in questo modo la possibilità del movimento e dell’interazione.
void setup() { size(200, 200); rectMode(CENTER); noStroke(); fill(0, 102, 153, 204); } void draw() { background(255); rect(width-mouseX, height-mouseY, 50, 50); rect(mouseX, mouseY, 50, 50); }
Java
Questa modalità è la più flessibile, permettendo la scrittura di programmi completi Java all’interno dell’ambiente di Processing (finché sono sottoclassi di PApplet).
Questa modalità è per programmatori esperti e non è in realtà consigliata.
Utilizzando questa modalità le schede aggiuntive non saranno più classi interne, e questo comporterà un lavoro aggiuntivo per farle comunicare adeguatamente con PApplet.
Non è necessario utilizzare questa modalità se non si necessita di caratteristiche specifiche del linguaggio Java.
public class MyDemo extends PApplet { void setup() { size(200, 200); rectMode(CENTER); noStroke(); fill(0, 102, 153, 204); } void draw() { background(255); rect(width-mouseX, height-mouseY, 50, 50); rect(mouseX, mouseY, 50, 50); } }