Lorsque je crée un nouveau projet LibGDX, la classe principale du projet Core étend ApplicationAdapter . Voici à quoi ça ressemble.
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);
}
}
Je dois donc changer l' ApplicationAdapter en Game si je veux appeler la méthode setScreen afin de basculer entre les écrans. Alors à quoi sert ApplicationAdapter ? Quand dois-je l'utiliser?
ApplicationListener
directement, vous devez fournir toutes les méthodes requises, y compris celles dont vous n'avez pas besoin (commepause()
ouresume()
, qui ne sont pas toujours utilisées).ApplicationAdapter
est là pour votre commodité, vous n'avez donc pas à garder des méthodes vides. C'est une classe utilitaire simple, elle n'ajoute aucune nouvelle fonctionnalité - elle maintient simplement votre code plus propre (ou plus court ).Comme ApplicationAdapter et la classe Game implémentent l'interface ApplicationListener, elles peuvent toutes deux être utilisées de manière presque interchangeable lors de la création de votre jeu. Si vous êtes prêt à utiliser Screen, rien ne vous empêche de les implémenter avec les deux options.
La classe Game a un peu plus de surcharge avec elle en utilisant des écrans. Cependant, cette surcharge est conçue pour faciliter la mise en œuvre de différents niveaux / étapes dans votre jeu. Il est important de noter que cette surcharge est minime.
L' ApplicationAdapter n'a pas de surcharge supplémentaire (il s'agit d'une implémentation directe d'un ApplicationListener). Cela vous donne plus de contrôle car vous devez tout faire vous-même. Personnellement, je préfère utiliser ApplicationAdapters.
TL; DR: Aucune différence réelle entre eux. ApplicationAdapter vous donne un peu plus de contrôle et le jeu est un peu moins de travail.
la source