Java 在libgdx中使用AssetManager类

Java 在libgdx中使用AssetManager类,java,android,libgdx,Java,Android,Libgdx,我正在使用libgdx开发一个平台游戏。 我刚刚开始使用AssetManager类。我的游戏有一个基本等级,所有其他等级都从它扩展而来。还有一个类为BaseLevel加载所有内容,在用户完成第一级之后,他将进入下一级,以此类推。玩家、硬币和敌人在我的游戏的所有关卡中使用相同的纹理 所以我的问题是:我是否需要在每个关卡开始时使用我的加载屏幕,并在每个关卡隐藏时删除所有内容?或者我只需要使用所有已加载的纹理,而不删除它们 这是我加载所有地图集和纹理的方式: //Atlases g

我正在使用libgdx开发一个平台游戏。 我刚刚开始使用
AssetManager
类。我的游戏有一个基本等级,所有其他等级都从它扩展而来。还有一个类为BaseLevel加载所有内容,在用户完成第一级之后,他将进入下一级,以此类推。玩家、硬币和敌人在我的游戏的所有关卡中使用相同的纹理

所以我的问题是:我是否需要在每个关卡开始时使用我的加载屏幕,并在每个关卡隐藏时删除所有内容?或者我只需要使用所有已加载的纹理,而不删除它们

这是我加载所有地图集和纹理的方式:

     //Atlases
     game.manager.load("ui/buttonright.pack", TextureAtlas.class);
     game.manager.load("ui/buttonleft2.pack", TextureAtlas.class);
     game.manager.load("ui/jumpbutton.pack", TextureAtlas.class);
     game.manager.load("ui/nextlevel.pack", TextureAtlas.class);
     game.manager.load("ui/menupack.pack", TextureAtlas.class);
     game.manager.load("ui/pausebutton.pack", TextureAtlas.class);
     game.manager.load("ui/resumepack.pack", TextureAtlas.class);
     game.manager.load("ui/restartpack.pack", TextureAtlas.class);


     //Textures
     game.manager.load("img/background2.png", Texture.class);
     game.manager.load("img/background2up.png", Texture.class);

我在所有级别中使用这些所有纹理和地图集,是否需要在级别完成时将它们从AssetMenager类中删除?

要卸载所有纹理和地图集,请使用

 game.manager.unload("ui/buttonright.pack");
 game.manager.unload("img/background2up.png");
等等


有关AssetManager的更多信息,请使用此链接。如果资产由级别共享,则无需卸载它们。如果要卸载它们,应首先加载新级别的所有资产,然后卸载旧级别的资产。AssetManager不引用计数,因此两个级别使用的任何资产都将保持加载状态(仅当按该顺序加载新资产然后卸载旧资产时)


我看到你有一个叫做
resumepack.pack
restartpack.pack
的东西。如果在应用程序暂停后返回时使用其中任何一个选项来创建重载类型屏幕,则可能需要避免使用AssetManager。如果恢复/重新加载屏幕仅使用传统的托管资源,则可以使用这些资源在恢复时显示进度条或类似内容(假设使用了
Texture.setAssetManager(manager);
)。

是,但我的问题是,在每一个关卡之后,我是否需要卸载所有的东西,即使我在下一关卡使用它们。在这种情况下,更好的方法是,你用你在整个游戏中需要的图像和其他具有关卡特定图像的类型对你的纹理和地图集进行分类。因此,你可以卸载特定级别的图像,并重用这些图像,这些图像将在整个游戏中使用谢谢你的重播,这对我帮助很大。