Leopik Leopik - 3 months ago 7x
Java Question

What is the difference between "Game", "Screen" and "ApplicationAdapter" in libgdx?

In tutorials sometimes people use "extends Game", sometimes "implements Screen" and i have auto-generated "extends ApplicationAdapter". What is the difference between them?


ApplicationAdapter allows you to create a listener, but not being forced to implement every method. If you're familiar with Swing, check out KeyAdapter, it's the same idea.

An ApplicationListener allows you to handle application events. This allows you to execute code during certain events within the application life-cycle (such as destroy).

An ApplicationListener is called when the Application is created, resumed, rendering, paused or destroyed. All methods are called in a thread that has the OpenGL context current. You can thus safely create and manipulate graphics resources.

A Game is an ApplicationListener that supports multiple screens. You can create multiple screens and switch between em using setScreen.

An ApplicationListener that delegates to a Screen. This allows an application to easily have multiple screens.

A Screen is exactly what it sounds like; it's what will be displayed at that given time. Maybe it's a main menu, maybe it's the actual game.

Represents one of many application screens, such as a main menu, a settings menu, the game screen and so on.

It's recommended you use the Game class for the base of your game, then create multiple Screen instances of the different possible game states you will have.