我正在制作一款包含几款迷你游戏的游戏。每个迷你游戏都有它自己的屏幕。
现在我在启动应用程序时加载所有资产,而不是每个迷你游戏的特定资产。
我的问题是,使用AssetManager,在从一个迷你游戏切换到另一个迷你游戏时,我如何才能最好地处理这些资产? manager.dispose()
将不起作用,因为它将处理所有内容,并且只在应用程序启动时才会加载。
目前我正在这样做:
atlas = GdxAssetManager.manager.get(GdxAssetManager.runner, TextureAtlas.class);
然后当迷你游戏结束时我回到菜单我称之为:
public void dispose(){
for(int i = 0; i < obstacles.size; i++){
obstacles.get(i).dispose(); //unload the assets from each object in this array
}
GdxAssetManager.manager.unload(GdxAssetManager.runner); //unload the atlas in example code above
scoreHandler.dispose(); //unloading object assets
}
答案 0 :(得分:0)
好吧,如果我是你,我会在你的GdxAssetManager中创建一个方法(我猜它是你自己定制的),这有助于选择在哪个屏幕上加载哪些资产。
例如:
public void loadAssets(int screen) {
if(screen ==1)
//...Load assets
if(screen ==2)
//...Load different Assets
}
dispose()
也是如此只做manager.clear()
这是一个非常好的阅读来源:Here