Specialeffekter och spelutveckling
i Java(TM) - Appleten MouseMoveTest
import java.applet.*;
import java.awt.*;
public class mousemovetest extends Applet {
//Variabeln "backgroundimage" pekar på
//bakgrundsbilden (bilden på skrivblocket).
Image backgroundimage;
//Variabeln "penimage" är pennan som rör
//sig i samband när du flyttar på muspekaren.
Image penimage;
//Nu måste vi använda dubbelbuffring för att
//slippa flimmer.
Image bufferimage;
Graphics bufferg;
//Muspekarens position lagras i variablerna
//"penx" och "peny" så att paint() metoden
//kan rita ut "penimage" på rätt position.
int penx;
int peny;
public void init()
{
//Initiera dubbelbuffringsverktygen.
Dimension d=size();
bufferimage=createImage(d.width,d.height);
bufferg=bufferimage.getGraphics();
MediaTracker tracker=new MediaTracker(this);
backgroundimage=getImage(getDocumentBase(),"block.jpg");
tracker.addImage(backgroundimage,0);
//Observera att "pen.gif" är transparent.
penimage=getImage(getDocumentBase(),"pen.gif");
tracker.addImage(penimage,1);
try {tracker.waitForAll();}
catch(InterruptedException e)
{
System.out.println("Någonting stoppade inladdningen...");
}
}
public void paint(Graphics g)
{
if (bufferg!=null)
{
//Först ritar vi ut bakgrundsbilden.
bufferg.drawImage(backgroundimage,0,0,this);
//Sedan ritar vi ut bilden på pennan
//på positionerna som anges av
//"penx" och "peny". Vi måste också justera
//bildens position eftersom pennans spets
//pekar inte exakt på kanten av bilden.
bufferg.drawImage(penimage,penx-6,peny-6,this);
//Slutligen ritar vi ut bufferbilden på
//skärmen.
g.drawImage(bufferimage,0,0,this);
}
}
public void update(Graphics g)
{
paint(g);
}
public boolean mouseMove(Event e, int x, int y)
{
//Genom att uppdatera pennans position hos
//variablerna "penx" och "peny" så kan vi
//senare rita ut pennan på den här positionen.
penx=x; peny=y;
//För att inte "överlasta" webb-läsaren så
//använder vi oss av repaint() metoden.
repaint(70);
return true;
}
} |
 |  |
|