如何使用 AssetManager 在 libGDX 中构建 ResourceManager

2024-05-08

我想在我的 Android 游戏中使用非静态 AssetManager?我有很多层次。我应该如何使用AssetManager?我应该为每个级别创建一个单独的 AssetManager 吗?因为如果我创建一个 AssetManager,它将在第一个屏幕中加载所有纹理等。


您应该在主类中创建一个 AssetManager,它在应用程序启动时加载所有资源。然后,对于每个级别,您应该创建一个不同的屏幕或使用一个屏幕,具体取决于您的游戏。然后,将 AssetManager 的引用传递给您创建的每个新屏幕实例(以便屏幕访问其资源)。

例如:

主程序.java

public class Main extends Game {

private GameScreen gameScreen;  // the game screen

private AssetManager assetManager;  // for loading all assets

public void create(){
    assetManager = new AssetManager();
    assetManager.load("assets/data/yourSkin", Skin.class);
    assetManager.finishLoading();  // load assets (not asynchron for this example)
    setGameScreen();
}

public void setGameScreen(){
    setScreen(new GameScreen(this));
}

public void dispose() {
    assetManager.dispose();   // disposes all assets when the game exits
}

// so that screens can get the assetManager from the main class
public AssetManager getAssetManager() { return assetManager; }
}

游戏屏幕.java

public class GameScreen implements Screen {

private Main mainClass;
private AssetManager assetManager;

private Skin skin;    // holds fonts, button style, ...


public GameScreen(Main mc) {

    // init
    this.mainClass = mc;
    assetManager = mc.getAssetManager();


    // load skin
    skin = assetManager.get("assets/data/skin", Skin.class);

    // make GUI...
}


@Override
public void render(float delta) {
    Gdx.gl.glClearColor(1, 1, 1, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    // draw
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 AssetManager 在 libGDX 中构建 ResourceManager 的相关文章

  • https://www.googleapis.com/games/v1/players/xxxxx LibGDX And​​roid 出现意外响应代码 403

    我正在使用 LibGDX 制作 Android 游戏 我想使用 Google Play 游戏服务 API 但我无法让它工作 当我尝试登录时会发生以下情况 06 12 20 08 47 745 E Volley 4046 253 tk a U
  • 如何使用 box2d 在 libgdx 中拖动对象?

    我已将对象添加到box2d世界在libgdx 我想知道是否可以用鼠标拖动对象 如果是这样 怎么办 thanks 这里有几个选项 您可以使用鼠标关节 也可以使用运动体并手动设置其位置 看看如何使用鼠标关节的一个很好的例子 http code
  • 正交相机旋转

    我可以使用此代码旋转相机 camera zoom 3 in constructor if camera zoom gt 1 camera zoom 0 01f camera rotate 15 this is done in render
  • 在 Libgdx 中使用屏幕时重用代码

    根据我在阅读其他人关于如何制作不同屏幕的代码时的理解 您执行一个主处理程序类 然后为每个屏幕创建一个新类 让我困惑的是 每当你创建一个新屏幕时 你都必须重新定义将要渲染的所有内容 例如 SpriteBatch 精灵 字体等 有没有办法在所有
  • 哪些方法可用于管理现有数据库的不同版本?

    Note这旨在成为提出并回答你自己的问题 as per 以问答方式分享您的知识 https stackoverflow blog 2011 07 01 its ok to ask and answer your own questions
  • 安卓。如何沿对象面向的方向移动对象(使用 Vector3 和四元数)

    我正在使用 libGDX 事实上对它来说相当新 和 Android 我想沿 3d 对象所面向的方向移动 使用一定的速度 我认为这是一个基本问题 但找不到直接答案 我有一个代表对象旋转 方向 的四元数 有一个代表对象位置的 Vector3 问
  • 画一条平滑的线

    我正在使用 libgdx 开发游戏 我想使用形状渲染器绘制一条平滑的线条 shaperenderer begin ShapeType Line shaperenderer line fisrstVec2 secondVec2 shapere
  • 是否可以在 libGDX 中禁用帧限制?

    更具体地说 是一个桌面 libGDX LWJGL 应用程序 有一些配置选项可以禁用 CPU 同步以及垂直同步 但不管应用程序以 60 fps 运行 这对于所有实际用途来说都很好 但出于好奇 如果没有别的原因 我想看看帧速率可以达到多高 罗德
  • Libgdx 模板和形状渲染器

    我正在尝试完成这样的事情 样本图像 https i stack imgur com CkdSO jpg 整个屏幕将是黑色的 然后三角形的内部是只会出现的部分 我尝试使用剪刀 但它是矩形的 原始图片来源 https www html5rock
  • 对话框的对象位置 Libgdx

    我有一个对话框 Dialog dialog new Dialog style dialog setSize 400 500 dialog setPosition Gdx graphics getWidth 2 200 Gdx graphic
  • LibGDX FreeTypeFontGenerator NoSuchField 异常

    现在 我正在使用 Java 中的 LibGDX 构建一个小游戏 并且我想使用 TTF 字体 我已将 gdx freetype jar 和 gdx freetype natives jar 添加到我的构建路径中 但是当我开始运行我的应用程序时
  • 在 LibGDX 中保存和检索图像文件

    如何在 LibGDX 中保存和检索图像文件 我想将图像文件保存在 AndroidApplication 类的本地存储中 并在我的 Core 项目中检索它 Libgdx 中的文件处理在libGDX 维基 https github com li
  • LibGDX 非常奇怪的错误 - 对象消失了

    当我创建我的第一个平铺地图创建器时libGDX 我注意到一个非常奇怪的错误 我创建这样的对象网格 private static final int GRID WIDTH 2400 private static final int GRID
  • 如何使用 LibGdx 在 Android 上设置地图大小

    我正在开发一个简单的游戏 但在设置地图大小时遇到 问题 我在用OrthographicCamera 我希望地图可见 我应该如何设置视口的正确大小new OrthographicCamera viewport width viewport h
  • Android 原生 AAssetManager 的文件层次结构

    Issue 我想知道如何从本机代码创建 Android 中资产文件夹的文件层次结构 我在用着AAssetManager openDir but AAssetDir getNextFileName不返回任何目录名称 因此基本上我无法深入了解层
  • LibGDX纹理混合与OpenGL混合功能

    在 libGdx 中 我试图创建一个成形纹理 采用完全可见的矩形纹理并将其遮罩以获得成形纹理 如下所示 在这里我在矩形上测试它 但我想在任何形状上使用它 我调查过本教程 http www learnopengles com tag addi
  • 为什么 Libgdx 的 Table 不接受缩放操作?

    我在 libgdx 库中使用 scene2d 在游戏中创建一些 UI 我使用了一个表格 我想在用户触摸时采取一些缩放操作以使按钮触摸有意义 当我使用任何其他 Actor 类型 例如 Group 并为其提供缩放操作时 它可以工作 但不能工作表
  • libGDX 中的奖励视频广告示例

    我一直在寻找例子 但没有找到 我发现一个没有 libgdx 的应用程序以及它无法工作的一些原因 但应用程序也没有崩溃 public class AndroidLauncher extends AndroidApplication imple
  • LibGDX 将 Vector2 与浮点值相乘

    有没有办法将 Vector2 与浮点值相乘 我曾经在 XNA 中这样做 通过将归一化方向向量与速度浮点数相乘来计算运动 这几乎是我的代码中使事情正常工作的最后一步 但似乎没有用于接受浮点值的 Vector2 的乘法函数 我可以手动将 x 和
  • 在 libgdx 中渲染 box2d

    我有一个使用 FitViewport 的大小为 800x480 的游戏世界 并且最初使用像素渲染 box2d 实体 固定装置 因此所有物理效果都显得浮动且缓慢 查看文档后 我意识到 box2d 使用度量单位 因此我将 box2d 位置和大小

随机推荐