Quando crio um novo projeto LibGDX, a classe principal do projeto Core estende o ApplicationAdapter . Aqui está como ele se parece.
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);
}
}
Portanto, tenho que mudar o ApplicationAdapter para Game se quiser chamar o método setScreen para alternar entre as telas. Então, qual é o uso do ApplicationAdapter ? Quando devo usá-lo?
ApplicationListener
diretamente, você deve fornecer todos os métodos necessários, incluindo aqueles que você não precisa (comopause()
ouresume()
, que nem sempre são usados).ApplicationAdapter
está disponível para sua conveniência, para que você não precise manter métodos vazios por perto. É uma classe de utilitário simples, que não adiciona novas funcionalidades - apenas mantém seu código mais limpo (ou mais curto ).Como o ApplicationAdapter e a classe Game implementam a interface ApplicationListener, eles podem ser usados quase de forma intercambiável ao criar seu jogo. Se você estiver usando o Screen, nada o impedirá de implementá-los com as duas opções.
A classe Game possui um pouco mais de sobrecarga usando as Telas. No entanto, essa sobrecarga foi projetada para facilitar a implementação de diferentes estágios / níveis no seu jogo. É importante observar que essa sobrecarga é mínima.
O ApplicationAdapter não possui sobrecarga adicional (é uma implementação direta de um ApplicationListener). Isso lhe dá mais controle, pois você precisa fazer tudo sozinho. Pessoalmente, prefiro usar ApplicationAdapters.
TL; DR: Não há diferença real entre eles. O ApplicationAdapter oferece um pouco mais de controle e o jogo é um pouco menos trabalhoso.
fonte