Uso di lettere come agenti autonomi

    let charPos;  // posizione (x, y) della lettera
let charVel;  // vettore si spostamento della lettera
let charTxt;  // lettera da visualizzare

function setup() {
    createCanvas(670, 300)
    textSize(24)
    textAlign(CENTER)
    // inizializza
    charPos = createVector(width/2, height/2);  // centro del canvas
    charVel = p5.Vector.random2D();             // 1 px, direzione casuale  
    charTxt = "A"
}

function draw() {
    background(220)
    translate(charPos.x, charPos.y);      // posizione
    rotate(charVel.heading() + HALF_PI);  // orientamento verso spostamento
    text(charTxt, 0, 0)
    // aggiorna
    if (charPos.x < 0 || charPos.x > width) {  // se esce ai lati...
        charVel.x = -charVel.x;                // inverti direzione x
    }
    if (charPos.y < 0 || charPos.y > height) { // se esce su o giù...
        charVel.y = -charVel.y;                // inverti direzione y
    }
    if (random() < 0.05) {                     // col 5% di probabilità...
        charVel.rotate(random(-0.1, 0.1));     // cambia orientamento
        charVel.setMag(random(0.1, 3));        // cambia velocità
    }
    charPos.add(charVel);                      // sposta lettera
}
  

Far modificare il carattere ogni volta che esce dal canvas, tenendo presente che le lettere maiuscole si possono ottenere casualmente con l’istruzione:


  

Sul web editor si può trovare una versione più elaborata e con l’uso delle classi.