0

我在弄清楚正确使用 libGDX 的 AssetManager 类时遇到了一些麻烦。据我了解,您永远不应该创建 AssetManager 的静态实例。人们建议的替代方法是将 AssetManager 引用传递给使用它的每个类。我想知道我在下面提出的是否是另一种安全的选择。

public class GdxGame extends Game {

    private AssetManager assets;

    ....dispose, create AssetManager etc


    public static AssetManager getAssets() {
        return ((GdxGame) Gdx.app.getApplicationListener()).assets;
    }
}

我真的不想将 AssetManager 或 Assets 类传递给游戏中的每个类,所以我试图找出一种允许某种静态引用的解决方案。这安全吗?

4

1 回答 1

0

我认为您太担心了 :-) 您最初建议的静态实例对于您的目的来说是完全足够的和实用的:

private static AssetManager assets;
....dispose, create AssetManager etc

public static AssetManager getAssets() {
    return assets;
}

年轻玩家唯一要避免的陷阱是当您暂停 Android 应用程序时:在恢复时,只需重新加载 AssetManager 及其资产,然后再继续。不用担心语义——如果它对你有用,那就没问题了。快乐的时光 :-)。

于 2016-05-27T13:20:19.427 回答