Hem E-böcker Specialeffekter och spelutveckling i Java Appleten MouseMoveTest 

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

}