Wenn ich ein neues LibGDX-Projekt erstelle, erweitert die Hauptklasse des Core-Projekts ApplicationAdapter . So sieht es aus.
package com.marimba.apptest;
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
public class AppMain extends ApplicationAdapter {
@Override
public void create () {
}
@Override
public void render () {
Gdx.gl.glClearColor(1, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
}
}
Ich muss also den ApplicationAdapter in Game ändern , wenn ich die setScreen-Methode aufrufen möchte, um zwischen den Bildschirmen zu wechseln. Wozu dient ApplicationAdapter ? Wann soll ich es benutzen?
ApplicationListener
direkt implementieren , müssen Sie alle erforderlichen Methoden bereitstellen, auch solche, die Sie nicht benötigen (wiepause()
oderresume()
, die nicht immer verwendet werden).ApplicationAdapter
ist für Ihre Bequemlichkeit da draußen, so müssen Sie leere Methoden nicht herum aufbewahren. Es handelt sich um eine einfache Utility-Klasse, die keine neuen Funktionen hinzufügt. Sie sorgt lediglich dafür, dass der Code sauberer (oder kürzer ) bleibt .Da der ApplicationAdapter und die Game-Klasse die ApplicationListener-Schnittstelle implementieren, können beide beim Erstellen Ihres Spiels nahezu austauschbar verwendet werden. Wenn Sie mit Screen arbeiten, hindert Sie nichts daran, sie mit beiden Optionen zu implementieren.
Die Game- Klasse hat etwas mehr Aufwand mit der Verwendung von Bildschirmen. Dieser Overhead soll es jedoch einfacher machen, verschiedene Phasen / Ebenen in Ihrem Spiel zu implementieren. Es ist wichtig zu beachten, dass dieser Aufwand minimal ist.
Der ApplicationAdapter hat keinen zusätzlichen Overhead (es ist eine direkte Implementierung eines ApplicationListener). Dies gibt Ihnen mehr Kontrolle, da Sie alles selbst erledigen müssen. Persönlich bevorzuge ich ApplicationAdapter.
TL; DR: Kein wirklicher Unterschied zwischen ihnen. ApplicationAdapter gibt Ihnen ein bisschen mehr Kontrolle und das Spiel ist ein bisschen weniger Arbeit.
quelle