Modalità di programmazione

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);
  }
}