Klassen GameEvent
import se.lth.cs.pt.graphics.events.GameEvent;

Klassen GameEvent beskriver tre typer av händelser som kan inträffa när man använder ett GraphicsWindow för att spela enklare spel:

För att dessa händelser skall aktiveras måste man på fönstret anropa någon av operationerna: Se dokumentationen av GraphicsWindow för mer information.

Ett enkelt exempel på användande av GameEvent är följande:

    GraphicsWindow w = new GraphicsWindow(...);
    // ...
    w.checkKeys(true,false,false);    // testa om användaren trycker ned tangent
    w.checkMouse(true,false,false,false,false);  // testa musklick
    w.timeStep(50);                  // ge en tidshändelse var 50 ms (20 per sekund)
    for (;;) {
        GameEvent e = w.getNextEvent();
        switch (e.getKind()) {
        case GameEvent.TICK:
            // Det har gått ytterligare 50 ms, uppdatera ...
            break;

        case GameEvent.KEY_PRESSED:
            // Användaren har tryckt ner en tangent, kolla vilken:
            if (e.getKey() == 'a') {
                // Gör något lämpligt...
            } else if (e.getKey() == 'b') {
                // Gör något lämpligt...
            }
            break;

        case GameEvent.MOUSE_CLICKED:
            double x = e.getX();
            double y = e.getY();
            // Användaren har klickat i (x,y), gör något...
        }
    }
Egentligen borde klassen GameEvent varit superklass i en hierarki av händelseklasser, men då hade den inte kunnat användas tidigt i kursen.

Metoder
int getKind()
Ger typen av händelse, följande alternativ finns: GameEvent.TICK, GameEvent.KEY_PRESSED, GameEvent.KEY_RELEASED, GameEvent.KEY_TYPED, GameEvent.MOUSE_CLICKED, GameEvent.MOUSE_PRESSED, GameEvent.MOUSE_RELEASED, GameEvent.MOUSE_DRAGGED, GameEvent.MOUSE_MOVED;
Returnerar ett värde enligt ovan
char getKey()
Ger den tangent som tryckts, om händelsen är en n * tangentbordshändelse.
Returnerar den aktuella tangenten.
double getX()
Ger x-koordinaten för händelsen, om händelsen är en mushändelse.
Returnerar x-koordinaten.
double getY()
Ger y-koordinaten för händelsen, om händelsen är en mushändelse.
Returnerar y-koordinaten.
int getButton()
Talar om vilken musknapp som användes vid senaste händelsen, om den var en mushändelse. Eftersom antalet knappar på mössen varierar (från 1-3) kan man ibland behöva testa denna operation för att vara säker på vilken knapp som har vilket nummer -- på en mus med två knappar är i allmänhet vänster musknapp nummer 1 och höger musknapp nummer 3.
int getKeyCode()
Ger tangentkoden för den tangent som tryckts, om händelsen är en tangentbordshändelse. Denna operation behövs bara om vi är intresserade av att använda specialtangenter som exempelvis pil-tangenterna. De olika pil-tangenterna har namnen GameEvent.ARROW_LEFT, GameEvent.ARROW_RIGHT, GameEvent.ARROW_UP och GameEvent.ARROW_DOWN.
Returnerar den aktuella tangentkoden.
long getTime()
Ger tidpunkten för händelsen, mätt som antalet millisekunder sedan den 1 janauari 1970 (detta är ett vanligt sätt att mäta tider på datorer).
Returnerar antalet millisekunder sedan 1 januari 1970.