Home E-Books Effetti speciali e sviluppo giochi in Java Un terminale informatico

Effetti speciali e sviluppo giochi in Java(TM) -Un terminale informatico nella vostra finestra di status (statusdatatext)

di Anibal Wainstein (traduzione di Hanami Solutions)

3.1.2 Un terminale informatico nella vostra finestra di status (statusdatatext)  

I terminali informatici all'inizio degli anni 80 erano davvero lenti e avevano un modo particolare di scrivere le frasi. Qui, cercheremo di simulare quell'effetto, ma nella finestra di status e con solo una frase.

Effettuate una copia del precedente file Java e riscrivete il metodo init() secondo il seguente codice:

public void init()
{
    message="Pronti al lancio....";
    message+="6... 5... 4... 3... 2... 1... 0..."; }
Non abbiamo bisogno di spazi vuoti prima del messaggio, perché il messaggio persisterà nella finestra di status. Scrivete il seguente metodo run() : 
public void run()
{
    int L=message.length();
    boolean showcursor=false;
    //Scrive il messaggio passo passo
//col cursore lampeggiante.
    for (int i=0; i<L; i++)
    {         if (showcursor) showStatus(message.substring(0,i)+"_");
        else showStatus(message.substring(0,i));
        showcursor=!showcursor;
        try {Thread.sleep(100);}
        catch(InterruptedException e) {}     }     //Il messaggio è stato scritto. Animate il cursore
//(lo fa lampeggiare).
    while (true)
    {
        if (showcursor) showStatus(message+"_");
        else showStatus(message);
        showcursor=!showcursor;
        try {Thread.sleep(100);}
        catch(InterruptedException e) {}
    } }
L'effetto è in due passaggi e due cicli. La prima cosa che facciamo prima di entrare nei cicli è inizializzare una variabile che sarà usata per l'effetto cursore ("showcursor"). All'interno dei cicli e usando la seguente espressione, questa variabile sarà impostata a true quando è false e viceversa:
showcursor=!showcursor;
La parola chiave "!" indica complementare o opposto. Così "showcursor" sarà impostato al valore opposto del proprio stesso. Quando questa variabile è true, allora il cursore del computer verrà mostrato, il che nel nostro caso to è un carattere di trattino basso "_". Sarà aggiunto alla stringa del messaggio prima che sia scritto nella finestra di status. Nel ciclo for scriviamo il messaggio passo passo usando il metodo substring() (più il cursore) e aggiungiamo una pausa dopo averlo scritto.
L'ultimo ciclo while nel metodo run() ci serve affinché il thread mantenga il cursore animato per un tempo infinito. Lo usiamo per rendere l'effetto un pò più realistico.

Clickate qua per vedere statusdatatext in azione. 

Notate, che se volete accelerare gli effetti in questo esempio e nell'esempio della scorsa sezione, allora decrementate il valore nel metodo sleep(). Avrete così una applet che pesa di più sul processore. In effetti più complicati questo richiede molti calcoli e ciò potrebbe causare grossi problemi, come ne daremo esempio nei capitoli più avanti.

 


Pagina seguente >>