Hem E-böcker Specialeffekter och spelutveckling i Java Fallande text (fallandetext)

Specialeffekter och spelutveckling i Java(TM) - Fallande text (fallandetext)

av Anibal Wainstein
 
3.1.3 Fallande text (fallandetext)  

En annan intressant effekt är fallande text effekten. Ordet fallande är lite missvisande, för texten kommer farande från höger och bygger upp meningen bokstav för bokstav. Gör nu en kopia av föregående appletkod. 
Vi börjar med att initiera meddelandet i init(): 

public void init()
{
    meddelande="Fallande text är en häftig effekt!";
}
Det var inget konstigt med det så vi fortsätter direkt till run() metoden: 
public void run()
{
    int L=meddelande.length();

    //skapa en sträng med mellanrum åt animeringen
    String mellanrum="                                 ";
    mellanrum=mellanrum+mellanrum+mellanrum;

    //sätt variabeln "mL" till mellanrummets längd.
    int mL=mellanrum.length();

    //första slingan räknar upp till meddelandets 
    //längd minus ett.
    for (int i=0; i<L-1; i++)
    {
        //andra slingan räknar upp till 
        //mellanrummets längd med ett steg 
        //på åtta för att det skall gå snabbare
        for (int j=0; j<mL; j+=8)
        {
            //visa en ökande del av meddelandet 
            //med ett minskande mellanrum och
            //till sist den sista bokstaven i 
            //meddelandesträngen
            showStatus(meddelande.substring(0,i)
                +mellanrum.substring(j)
                +meddelande.substring(i,i+1));
            try {Thread.sleep(50);}
            catch(InterruptedException e) {}
        }
    }
    //sista slingan ser till att meddelandet 
    //inte blir överskrivet av andra status-
    //meddelanden.
    while(true)
    {
        showStatus(meddelande);
        try {Thread.sleep(100);}
        catch(InterruptedException e) {}
    }
}
Den här effekten ser mycket mer komplicerat ut än de vi har gjort hittils. Vad du kanske rynkar ögonbrynen på är kanske de dubbla for-slingorna. Den första slingan används för att bygga upp meningen. För varje ny bokstav som läggs till i meningen så måste man animera den följande bokstaven. Detta tar den inre slingan hand om. Där använder man variabeln "j" för att beta av mellanrummet mellan meningen och den animerade fallande bokstaven. Observera att för att beta av mellanrummet så har vi använt oss av en överladdad funktion av substring() som då tar en delsträng från j-positionen fram till slutet av strängen. 
När animeringen är klart så ser vi till att fånga tråden i en slinga. Denna står och skriver ut meddelandet i statusfönstret så att den inte försvinner. 
Det bästa sättet att veta hur effekten ser ut är att se det i aktion, klicka här.

 

 

 


Nästa sida >>