Today I was experimenting with adding different screens with Scene2d
in libgdx
and while doing so I became confused how super.render()
in my render()
method from my starter class (MyGdxGame
) called render()
in my PlayScreen()
class. Basically I understand you use super
to call methods, fields, invoke a super class constructor etc... however I don't see how my Main class
witch extends Game
is a subclass/derived class of my PlayScreen class
witch simply implements Screen
. In short I don't see how those two classes are related so that super.render()
in MyGdxGame
class can call render()
in my PlayScreen
class.
Also I looked at the API and Screen
implements ScreenAdapter
and Game
implements ApplicationListener
but I still don't see how that connects.
Starter class:
public class MyGdxGame extends Game {
Game game;
@Override
public void create() {
game = this;
setScreen(new MainMenu(game));
}
@Override
public void render() {
super.render();
}
public void dispose() {
super.dispose();
}
public void pause() {
super.pause();
}
}
PlayScreen class:
public class PlayScreen implements Screen {
private static Player player;
SpriteBatch batch;
GameControls x;
CollisionManager collisionManager;
ArrayList<Tree> trees;
Iterator itr;
Enemy enemy;
Animations animation;
Game game;
MainMenu mainMenu;
public PlayScreen(Game game, MainMenu mainMenu) {
this.game = game;
this.mainMenu = mainMenu;
}
// more code ...
}