Kiedy tworzę nowy projekt LibGDX, główna klasa projektu Core rozszerza ApplicationAdapter . Oto jak to wygląda.
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);
}
}
Więc muszę zmienić ApplicationAdapter na Game, jeśli chcę wywołać metodę setScreen, aby przełączać się między ekranami. Jakie jest więc zastosowanie ApplicationAdapter ? Kiedy powinienem go użyć?
ApplicationListener
bezpośrednio, musisz podać wszystkie wymagane metody, w tym te, których nie potrzebujesz (np.pause()
Lubresume()
, które nie zawsze są używane).ApplicationAdapter
jest dostępny dla Twojej wygody, więc nie musisz trzymać pustych metod w pobliżu. Jest to prosta klasa narzędziowa, nie dodaje żadnych nowych funkcjonalności - po prostu utrzymuje twój kod w czystości (lub krócej ).Ponieważ ApplicationAdapter i klasa Game implementują interfejs ApplicationListener, można z nich korzystać niemal zamiennie podczas tworzenia gry. Jeśli korzystasz z ekranu, nic nie stoi na przeszkodzie, aby zastosować je w obu opcjach.
Gra klasa ma trochę bardziej z głową to za pomocą ekranów. Jednak narzut ten został zaprojektowany, aby ułatwić wdrażanie różnych etapów / poziomów w grze. Należy zauważyć, że ten narzut jest minimalny.
ApplicationAdapter ma dodatkowy narzut (jest to prosta implementacja ApplicationListener). Daje to większą kontrolę, ponieważ musisz zrobić wszystko sam. Osobiście wolę używać ApplicationAdapters.
TL; DR: Brak rzeczywistej różnicy między nimi. ApplicationAdapter daje ci trochę więcej kontroli, a gra to trochę mniej pracy.
źródło