【问题标题】:Load textures from another class in android从android中的另一个类加载纹理
【发布时间】:2014-09-09 23:39:27
【问题描述】:

我正在使用 libgdx 和 IntelliJ 开发一款适用于 android 的游戏。在这个游戏中,我有两个“屏幕”,这些屏幕使用相同的纹理作为背景,这就是我加载它们的方式:

    Texture backgroundTexture;
    public static Sprite backgroundSprite;

    backgroundTexture = new Texture("textures/background.png");
    backgroundSprite = new Sprite(backgroundTexture);

这是在两个屏幕中完成的,所以我的问题是,我可以在另一个类中加载这些纹理,然后以某种方式在两个屏幕中使用它们,我觉得这就是这样做的方法,对吗?如果我走在正确的轨道上,应该如何实施?

【问题讨论】:

  • 你可以创建一个“纹理”类。就像你在那里做的那样初始化纹理变量。确保像public static Texture backgroundTexture = new Texture("textures/background.png") 一样将这些变量设为公开和静态。我认为这应该是足够的信息,如果您愿意,我可以将其作为官方答案并放置所有代码。
  • 是的,如果你这样做,我会接受它作为答案,我将不胜感激! (我不能接受评论作为答案,或者?)

标签: java android intellij-idea libgdx


【解决方案1】:

您可以按照自己的方式使用 AssetLoader 来加载资产。它只是一个类,在应用程序启动时调用它并没有什么特别之处,因为事实上你应该避免在一切都在运行时加载资产。它只是一个带有静态事物的简单类。

public class AssetLoader {

    public static Texture myBackgroundTexture;

    public static void Load() {
        myBackgroundTexture = new Texture("mybgs/my_bg_texture.png");
    }

让我们在应用程序启动时调用 AssetLoader.Load(),您可以在任何地方引用您的内容,例如:

Texture thisScreenBg = AssetLoader.myBackgroundTexture;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-25
    • 1970-01-01
    • 2011-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多