Fenstergrössenänderung unterdrücken in libGDXcover image

Fenstergrössenänderung unterdrücken in libGDX

Tim Bernhard

libGDX

Dieser Beitrag ist etwas älter. Meinungen, Daten und Codes könnten veraltet sein.

Helfen Sie mit, allfällige Fehler zu korrigieren: GitHub

Ein weiteres Game-Projekt im Java-Framework libGDX. Ein weiteres Problem, das einen kurzen Blogbeitrag wert ist: die Änderung der Fenstergrösse.

Wann auch immer ich etwas programmiere, bin ich unendlich froh über den Umstand dass es nicht von Anfang an perfekt sein muss. Da ich leider kein Mozart der Informatik bin, mache ich Fehler - ich bin ja auch nur ein Mensch. Um diese Fehler zu finden, ist es von Vorteil, wenn man das Programm ab und zu ausprobieren kann, um die Änderungen zu testen. In libGDX geht das logischerweise auch. Da der build-Prozess für die Android bzw. iOs Applikation einigermassen lange dauert, und die jeweilige virtuelle Maschine sehr Ressourcenlastig ist, teste ich meine kleinen Änderungen als Desktopapplikation. Das Spiel-feeling ist bis auf die von Gyro-sensoren abhängigen Elementen identisch. Doch: man kann vom Standard her die Grösse des Fensters ändern! Sowas ist auf Mobilgeräten nicht möglich, weshalb diese Funktion doch eher störend ist, wenn man zum Beispiel mit der Maus eine Wischbewegung des Fingers imitiert und so aus Versehen die Fenstergrösse ändert. Die Grafiken verschieben und verzerren sich, man kann nicht weiter testen... Was also dagegen tun?

Um in der Desktopapplikation die Änderung der Fenstergrösse zu verhindern, ist es bloss nötig, dass man im Desktopprojekt die Datei DesktopLauncher.java bearbeitet. Zur Definition von config muss die boolessche Variable resizable auf false gesetzt werden, und schon lässt sich die Fenstergrösse nicht mehr ändern!

Der Code von DesktopLauncher.java sähe dann etwa folgendermassen aus:

    package ch.genieblog.yourpackage;

    import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
    import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
    import ch.genieblog.yourgame;

    public class DesktopLauncher {
        public static void main (String[] arg) {
            LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
            config.title = "yourGameTitle"; // Der Titel der Applikation
            config.width = 480; // Die Breite der Applikation; entspricht der Breite 
                                                                            // eines durchschnittlichen Android-Smartphones
            config.height = 800; // Die Höhe der Applikation; entspricht der Höhe
                                                                            // eines durchschnittlichen Android-Smartphones
            config.resizable = false; // und hier verhindern wir die Fenstergrössenänderung
            new LwjglApplication(new spaceMaster(), config);
        }
    }
Webmentions

Keine Kommentare vorhanden für diese Seite.