Parole in sequenza

Un testo mostrato una parola alla volta impone il proprio ritmo di lettura: ogni parola resta sullo schermo per un tempo deciso dal codice, qui proporzionale al numero delle sue lettere.

    let testo = "le parole compaiono una alla volta e restano " +
            "per un tempo che dipende dalla loro lunghezza";
let parole;
let indice = 0;   // posizione della parola mostrata
let inizio = 0;   // momento in cui è comparsa, in millisecondi

function setup() {
    createCanvas( 670, 160 );
    textSize( 56 );
    textAlign( CENTER, CENTER );
    parole = testo.split( " " );
}

function draw() {
    background( 255 );
    let parola = parole[indice];
    text( parola, width/2, height/2 );

    let durata = 150 + parola.length * 100;
    if (millis() - inizio > durata) {
        indice = (indice + 1) % parole.length;
        inizio = millis();
    }
}
  

  

Divide il testo in un array di parole, usando gli spazi come separatori.


  

La durata, in millisecondi, cresce di 100 per ogni lettera della parola.


  

millis() restituisce i millisecondi passati dall’avvio dello sketch. Quando la parola è rimasta per la sua durata si passa alla successiva e si annota il momento del cambio; l’operatore % riporta l’indice a 0 dopo l’ultima parola.

Ridurre i valori della durata per avvicinarsi alla velocità delle presentazioni rapide di parole (Rapid Serial Visual Presentation), oppure far dipendere anche la dimensione del testo dalla lunghezza della parola.