Skip to content

Einstieg in den Source Code

damios edited this page Jul 31, 2020 · 9 revisions

Dieser Eintrag soll den Einstieg in den Source Code erleichtern, indem eine kleiner Überblick darüber gegeben wird, wie ProjektGG und insb. der Teil, der auf libGDX basiert, aufgebaut ist.

Der Ausgangspunkt des Spiels: DesktopLauncher

In der main(...)-Methode der DesktopLauncher-Klasse beginnt die Ausführung der Anwendung. Hier wird das Fenster eingerichtet und – ganz wichtig – eine Instanz des Spiels erstellt:

new new Lwjgl3Application(new ProjektGGApplication(), config);

Die Hauptklasse: ProjektGGApplication

ProjektGGApplication ist die Klasse, die das ganze Spiel steuert. Zum weiteren Verständnis ist es wichtig zu wissen, dass libGDX-Anwendungen eine Application-Klasse besitzen, die dafür zuständig ist, einzelne Screens zu rendern. Screens sind dabei eine auf dem Bildschirm dargestellte, "in sich schlüssige Situation", d.h. es gibt z.B. einen Hauptmenu-Screen, einen Settings-Screen und einen Ingame-Map-Screen.

ProjektGG verwendet die Bibliothek libgdx-screenmanager um das Rendern der Screens zu vereinfachen. D.h., um einen Screen hinzuzufügen, wird in der Application getScreenManager().addScreen("name", new XYZScreen()); aufgerufen. Genauer gesagt, geschieht dies in der initApp()-Methode, die dafür zuständig ist, das komplette Spiel zu initialisieren (ein Großteil der Initialisierung wird dabei bereits in der Super-Klasse EskalonApplication übernommen). Der Name des ersten Screens wird von der `initApp()-Methode als String zurückgegeben.

Um im späteren Verlauf einen anderen Screen anzuzeigen, muss die pushScreen("name", ...)-Methode des ScreenManagers verwendet werden.

Wie geht's weiter?

Als nächste Station bietet sich der Artikel zu den Screens an, der einen Überblick über die einzelnen Screens und ihre Funktionen liefert.