Cuando creo un nuevo proyecto LibGDX, la clase principal del proyecto Core extiende ApplicationAdapter . Así es como se ve.
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);
}
}
Entonces, tengo que cambiar ApplicationAdapter a Game si quiero llamar al método setScreen para cambiar entre pantallas. Entonces, ¿para qué sirve ApplicationAdapter ? ¿Cuándo lo usaré?
ApplicationListener
directamente, debe proporcionar todos los métodos requeridos, incluidos los que no necesita (comopause()
oresume()
, que no siempre se usan).ApplicationAdapter
está disponible para su conveniencia, por lo que no tiene que guardar métodos vacíos. Es una clase de utilidad simple, no agrega nuevas funcionalidades, solo mantiene su código más limpio (o más corto ).A medida que el ApplicationAdapter y la clase Game implementan la interfaz ApplicationListener, ambos pueden usarse casi indistintamente al crear su juego. Si está configurado para usar la pantalla, no hay nada que le impida implementarlas con ambas opciones.
La clase de juego tiene un poco más de gastos generales usando pantallas. Sin embargo, esta sobrecarga está diseñada para facilitar la implementación de diferentes etapas / niveles en tu juego. Es importante tener en cuenta que esta sobrecarga es mínima.
El ApplicationAdapter no tiene ninguna sobrecarga adicional (es una aplicación recta de un ApplicationListener). Esto le da más control ya que tiene que hacer todo usted mismo. Personalmente, prefiero usar ApplicationAdapters.
TL; DR: No hay diferencia real entre ellos. ApplicationAdapter te da un poco más de control y el juego es un poco menos de trabajo.
fuente