È uscito il Corso Java Completo — usa il coupon JAVA2026 (fino al 30 giugno)

Ciclo di Vita dell'Applicazione

L’interfaccia ApplicationListener

Ogni gioco LibGDX deve implementare l’interfaccia ApplicationListener. Spesso si estende la classe ApplicationAdapter per avere implementazioni vuote di default.

```java public class MyGdxGame extends ApplicationAdapter {

@Override
public void create() {
    // Chiamato una volta all'avvio.
    // Carica qui asset (immagini, suoni).
}

@Override
public void render() {
    // Chiamato ogni frame (60 volte al secondo).
    // Pulisci lo schermo, aggiorna la logica, disegna.
}

@Override
public void resize(int width, int height) {
    // Chiamato quando la finestra cambia dimensione.
    // Aggiorna qui la viewport della camera.
}

@Override
public void pause() {
    // Chiamato su Android quando l'app va in background (es. arriva una chiamata).
    // Salva lo stato del gioco qui.
}

@Override
public void resume() {
    // Chiamato quando l'app torna in primo piano.
    // Ricarica risorse perse (texture non gestite).
}

@Override
public void dispose() {
    // Chiamato alla chiusura.
    // IMPORTANTISSIMO: Libera la memoria nativa (texture, batch, suoni).
    // Se non lo fai -> Memory Leak!
}

} ```

Esempio Render Loop

```java SpriteBatch batch; Texture img;

@Override public void create() { batch = new SpriteBatch(); img = new Texture(“badlogic.jpg”); }

@Override public void render() { ScreenUtils.clear(1, 0, 0, 1); // Pulisci schermo (Rosso)

batch.begin();
batch.draw(img, 0, 0); // Disegna immagine
batch.end();

}

@Override public void dispose() { batch.dispose(); img.dispose(); } ```