Mon approche est toujours comme ça: -
Créer ma propre classe gestionnaire qui reçoivent exemple, si AssetsManager et charger tous les actifs de jeu lorsque le jeu est d'abord chargé
public class Assets implements Disposable{
public static final Assets instance = new Assets();
private AssetManager manager;
// Individual assets
public PlayerAssets playerAssets;
private Assets(){}
public void init(AssetManager manager){
this.manager = manager;
manager.load(..);
manager.finishLoading();
TextureAtlas atlas = manager.get(..);
playerAssets = new PlayerAssets(atlas);
}
public void dispose(){
manager.dispose();
}
/** Sample Inner class for catching loaded game assets */
public PlayerAssets{
public final AtlasRegion legs;
PlayerAssets(TextureAtlas atlas){
legs = atlas.find(..);
}
}
}
Sur votre classe de jeu vous chargez tous les éléments du jeu.
public class MyGame extends Game {
@Override
public void create(){
Assets.instance.init(new AssetManager()); // loading your resources
setScreen(new GameScreen());
}
}
Mise à jour du commentaire ci-dessous
vos actifs Mise au rebut. Vous pouvez créer une classe abstraite pour tout votre écran comme suit:
public abstract class AbstractScreen implements Screen{
protected Game game;
public AbstractScreen(Game game){
this.game = game;
}
}
. . . . . .
public void dispose(){
Assets.instance.dispose();
}
Ensuite, tous vos écrans étendront cette classe. par exemple
public class MenuScreen extends AbstractScreen {
public MenuScreen(Game game){
super(game);
}
}
méthode d'appel disposer par exemple d'écran disposera de toutes les ressources, vous pouvez remplacer pour les endroits où vous pouvez préférer un comportement différent par exemple
@everride
public void dispose(){
// super.dispose();
// Release other screen resources
}
Où appeler Éliminez l'écran est définitivement à toi. Vous pouvez également afficher l'écran de chargement lorsque vous chargez les actifs pour éviter un écran vide en raison des retards de chargement Si vous utilisez la fonction de dépas- sement comme ci-dessus pour disposer d'un écran, ne pas disposer des actifs
Impressionnant! C'est tout. Je vous remercie. –