...
GUI-et har tre deler, fra øverst til nederst:
|
Når brukeren trykker "init and run"-knappen vil GUI-et ta innholdet i det øverste tekstfeltet og gi det som argument til spillklassen sin init-metode. Deretter vil den be om å få rutenettet vha. getGridProvider()-metoden. Dette objektet vil så spørres om antall kolonner (getGridWidth()) og rader (getGridHeight()) og selve innholdet (getGridElement(...)), slik at den kan tegne rutenettet. Akkurat hvilken tekst og hvilket bilde som vises pr. rute bestemmes av svaret fra getTextFor(...) og getImageFor(...). Til slutt vil GUI-et registrere seg som lytter, slik at den kan reagrere på fremtidige endringer i rutenett. Til slutt startes selve spillet med et kall til run(...) og denne metoden vil typisk gi oppstartsinfo til brukeren med info(...)-metoden. |
Når brukeren trykker "doCommand"-knappen vil GUI-et ta innholdet i det nederste tekstfeltet og gi det som argument til spillklassen sin doCommand-metode. Dette vil typisk trigge en endring i rutenettet, som gir beskjed til lytterne, inkl. GUI-et, om endringen. GUI-et vil hente innholdet i ruten(e) som ble endret med getGridElement(...) og hvilken tekst og hvilket bilde som skal vises med getTextFor(...). Det kan også hende at statusen til spillet oppdateres med info(...)-metoden. |
Kjøring av spillet
Som er det en ferdigskrevet GUI-klasse som spillet skal kobles til. Den heter GridGameGUI og ligger her: program/GridGameGUI.java. En trenger også en fxml-fil, som ligger i samme mappe som GridGameGUI.java: program/GridGameGUI.fxml
Siden det er GUI-et som styrer showet, så er det GridGameGUI som skal startes ved kjøring av spillet ditt. GridGameGUI har en main-metode som tar spillklassen sitt navn som argument. Det enkleste er å lage en main-metoden i din egen spillklasse, som følger (bytt ut DinSpillklasse med navnet på din egen spillklasse):
Code Block |
---|
public static void main(String[] args) throws Exception {
GridGameGUI.main(new String[]{DinSpillklasse.class.getName()});
} |