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 >>
|
 |  |
|