Home E-Books Effetti speciali e sviluppo giochi in Java testo a cascata (fallingtext)

Effetti speciali e sviluppo giochi in Java(TM) -Testo a cascata (fallingtext)

di Anibal Wainstein (traduzione di Hanami Solutions)

3.1.3 Testo a cascata (fallingtext)  

Un altro effetto interessante è l'effetto testo a cascata. La parola "cascata" è un pò fuorviante, il testo arriva da destra e costruisce la frase o messaggio lettera per lettera. Ora, copiate il codice della applet nella precedente sezione. Cominciamo inizializzando il messaggio del metodo init():



public void init()
{
    message="Il testo a cascata è un effetto figo!"; }

Non c'è niente di strano per cui andiamo avanti col codice nel metodo run():

public void run()
{
    int L=message.length();
    //Crea una stringa con uno spazio vuoto per l'animazione.
    String blankspace="                                 ";
    blankspace=blankspace+blankspace+blankspace;
    //Imposta la variabile "mL" alla lunghezza dello spazio vuoto.
    int mL=blankspace.length();
    //Il primo ciclo si incrementerà sino alla lunghezza del //messaggio meno uno.
    for (int i=0; i<L-1; i++)
    {
        //Il secondo ciclo si incrementerà sino alla lunghezza dello spazio vuoto //avanzando di 8 passi alla volta per //aumentare la velocità.
        for (int j=0; j<mL; j+=8)
        {
            //Mostra una parte del messaggio che avanza //con una parte di spazio vuoto che si retrae //e l'ultima lettera nella stringa del messaggio.
            showStatus(message.substring(0,i)
                +blankspace.substring(j)
                +message.substring(i,i+1));
            try {Thread.sleep(50);}
            catch(InterruptedException e) {}
        }
    }
    //L'ultimo ciclo farà in modo che //il messaggio non sia sovrascritto da altri messaggi //di status.
    while(true)
    {
        showStatus(message);
        try {Thread.sleep(100);}         catch(InterruptedException e) {}
    } }

Questo effetto sembra molto più complicato di quelli fatti sinora. Quello che vi può colpire sono i cicli annidati FOR. Il primo ciclo viene usato per costruire la frase. Per ogni nuova lettera aggiunta nella frase bisogna animare la lettera seguente. Questo è il fine del loop interno. Lì usate la variabile "j" per restringere l'area di spazi vuoti tra la frase e le lettere animate in cascata. Vi prego di notare che per restringere l'area degli spazi vuoti abbiamo usato un metodo substring() sovraccaricato, che sposta una sottostringa dalla posizione j alla fine della stringa. Quando l'animazione è terminata, allora ci assicuriamo di mantenere il thread e di tenerlo in funzione in un ciclo. Questo ciclo scriverà il messaggio compiuto nella finestra di status, di modo che non sia sovrascritto da altri messaggi del browser. Il modo migliore di sapere come appaia l'effetto, è vederlo al lavoro clickando qui.

 

 


Pagina seguente >>