Klassen GraphicsWindow |
import se.lth.cs.pt.graphics.events.GraphicsWindow; |
Detta är ett slags GraphicsWindow
som utöver de
vanliga GraphicsWindow
-operationerna även låter oss
registrera vilka händelser vi vill att vårt program skall ta hand
om. Exempel på användning (se även klassen GameEvent
):
GraphicsWindow w = ...;
...
w.checkKeys(true,false,false);
w.checkMouse(true,false,false,false,false);
w.timeStep(100);
for (;;) {
GameEvent event = w.getNextEvent();
switch (event.getKind()) {
case GameEvent.KEY_PRESSED:
// Användaren har tryckt ner en tangent
keyPressed(event.getKey());
break;
case GameEvent.MOUSE_CLICKED:
// Användaren har klickat med musen
mouseClicked(event.getX(), event.getY());
break;
case GameEvent.TICK:
// Det har gått ytterligare 100 millisekunder
tick();
break;
}
}
Ritoperationerna dokumenteras i se.lth.cs.pt.graphics
-paketet.
Konstruktorer |
GraphicsWindow (double width, double height) |
| Skapar ett fönster med en given storlek. |
|
Parametrar: |
| width : | fönstrets bredd, i pixels. |
| height : | fönstrets höjd, i pixels. |
|
|
GraphicsWindow (String imageName) |
| Skapar ett fönster med en given bakgrundsbild -- bilden måste
ha något av formaten ".png", ".jpg" eller ".gif". |
|
Parametrar: |
| imageName : | namnet filen med bakgrundsbilden. |
|
|
Metoder |
GameEvent getNextEvent() |
| Ger nästa intressanta händelse som inträffar i fönstret --
händelserna beskrivs av klassen GameEvent . Vi
markerar vilka händelser som är av intresse med hjälp av
operationerna checkKeys , checkMouse
och timeStep . |
| Returnerar nästa händelse som vi anmält intresse för. |
|
void checkKeys(boolean checkKeyPressed, boolean checkKeyReleased, boolean checkKeyTyped) |
| Meddelar att vi är intresserade av olika slags
tangentbordshändelser. Det finns tre olika slags
tangentbordshändelser:
- en tangent trycks ner
- en tangent släpps upp
- en fullbordad tangenttryckning (dvs både nedtryckning och släpp).
|
|
Parametrar: |
| checkKeyPressed : | true om vi är intresserade
av när en tangent trycks ner |
| checkKeyReleased : | true om vi är intresserade
av när en tangent släpps upp |
| checkKeyTyped : | true om vi är intresserade av
när en tangenttryckning fullbordats (ganska ovanligt) |
|
|
void checkMouse(boolean checkMouseClicked, boolean checkMouseMoved, boolean checkMouseDragged, boolean checkMousePressed, boolean checkMouseReleased) |
| Meddelar att vi är intresserade av olika slags mushändelser.
Det finns tre olika slags mushändelser:
- användaren klickar på någon musknapp (dvs trycker ner och
släpper upp igen i tät följd, på samma plats).
- användaren flyttar musen utan någon musknapp nedtryckt
- användaren flyttar musen med en musknapp nedtryckt
- användaren trycker ner någon musknapp
- användaren släpper upp någon musknapp
|
|
Parametrar: |
| checkMouseClicked : | true om vi är
intresserade av när användaren klickar |
| checkMouseMoved : | true om vi är
intresserade av när användaren flyttar musen |
| checkMouseDragged : | true om vi är
intresserade av när användaren drar musen med någon knapp
nedtryckt |
| checkMousePressed : | true om vi är
intresserade av när användaren trycker ner någon musknapp |
| checkMouseReleased : | true om vi är
intresserade av när användaren släpper upp någon musknapp |
|
|
void timeStep(int timeStep) |
| Startar en klocka som ger tidshändelser med jämna mellanrum. |
|
Parametrar: |
| timeStep : | antalet millisekunder mellan varje tidshändelse. |
|
|
void pauseTimer() |
| Pausar tidshändelserna. |
|
void resumeTimer() |
| Återupptar tidshändelserna med samma frekvens som tidigare. |
|