Specialeffekter och spelutveckling
i Java(TM) - AppletAnimator II, nu konfigurerbar
av Anibal Wainstein
4.1.3
AppletAnimator II, nu konfigurerbar
Det är inte så stora ändringar
som måste göras i appleten AppletAnimator från
avsnitt 4.0.4 för att
göra den konfigurerbar. Vi börjar med att lägga
till en variabel "maxitems" som får stå
för antalet bilder applet användaren har specifierat
i applet parametrarna. Värdet på den här
variabeln måste användaren själv specifiera
som en parameter, den får också heta "maxitems":
//"maxitems" får hålla reda på hur många bilder det finns
int maxitems=0;
//"sleeptime" bestämmer fördröjningen mellan varje
//bild i sekunder
int sleeptime=0;
Image images[];
int currentimage=0;
public void init()
{
//Hämta värdet på parametern "maxitems" med
//talbasen 10
maxitems=getIntegerParameter("maxitems",10);
//Hämta värdet på parametern "sleeptime" med
//talbasen 10
sleeptime=getIntegerParameter("sleeptime",10);
//Arrayen "images" kommer att innehålla "maxitems"
//element
images=new Image[maxitems];
MediaTracker tracker=new MediaTracker(this);
for (int i=0; i<maxitems; i++)
{
//Förljande rad läser in parametrarna "image0",
//"image1", "image2" osv upp till det värde som
//maxitems anger och använder strängarna för
//att ladda in filerna som specifieras i
//parametrarna.
images[i]=getImage(getDocumentBase()
,getParameter("image"+i));
//identitetsnummret för varje bild måste ökas för
//varje bild man lägger in i spåraren
tracker.addImage(images[i],i);
}
//slutligen så ser vi till att spåraren laddar in bilderna
try {tracker.waitForAll();}
catch(InterruptedException e)
{
System.out.println("Någonting stoppade inladdningen...");
}
}
Appleten börjar först med att läsa
in "maxitems". Den här variabeln måste
innehålla det exakta antalet "image" parametrar
som kommer att läsas in av appleten. Variabeln "sleeptime"
specifierar fördröjningen mellan varje bild, vilket
kan vara ganska nyttigt att kunna ha. Filnamnen för
varje bild specifieras i parametrarna "image0",
"image1" osv. Vad som händer är att
for-slingan läser in en parameter och använder
dess värde för att ladda in bildfilen. Konfigurationen
för att få förra samma effekt som AppletAnimator
exemplet gav i avsnitt 4.0.4
skulle då se ut som följande:
<APPLET CODE="appletanimator2.class" WIDTH=100 HEIGHT=100>
<PARAM name="maxitems" value="4">
<PARAM name="sleeptime" value="200">
<PARAM name="image0" value="bild0.gif">
<PARAM name="image1" value="bild1.gif">
<PARAM name="image2" value="bild2.gif">
<PARAM name="image3" value="bild3.gif">
</APPLET>
Appleten är annu inte klar. Vi måste
göra två små ändringar i run() metoden
också:
public void run()
{
while (true)
{
update(getGraphics());
//"currentimage" ökas på så att nästa bild visas vid
//nästa skärm-uppdatering
currentimage++;
//Den får dock inte överstiga indexsiffran maxitems-1
if (currentimage>maxitems-1) currentimage=0;
//Variabeln sleeptime bestämmer fördröjningen
//i millisekunder.
try {Thread.sleep(sleeptime);}
catch(InterruptedException e) {}
}
}
Observera att nu är "maxitems-1"
den övre gränsen för "currentimage"
och fördröjningen bestäms nu av variabeln
"sleeptime". Äntligen är det dags att
visa vår första konfigurerbara applet. För
att visa hur samma applet kan konfigureras om och på
så sätt se helt annorlunda ut, använder
vi den som en enkel bildvisare med sex landskapsbilder.
Vi ökar fördröjningen till 2000 millisekunder
(2 sekunder) samt sätter "maxitems" till
6. Klicka här!
Nästa sida >>
|
| |
|