问题
In tutorials sometimes people use "extends Game", sometimes "implements Screen" and i have auto-generated "extends ApplicationAdapter". What is the difference between them?
回答1:
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.
来源:https://stackoverflow.com/questions/31222541/what-is-the-difference-between-game-screen-and-applicationadapter-in-libg