Loading Resources - UQcsse3200/2024-studio-3 GitHub Wiki

Introduction

Resources are managed by the Resource Service which loads and stores resources. To spread out the loading times, resources should be loaded in batches as needed.

Currently, the Resource Service supports Textures, Texture Atlases, Music and Sounds, but can be easily extended to support more resource types.

Usage

Resources should be loaded and unloaded into ResourceService using the corresponding load method. The following example is for textures.

private static final String[] forestTextures = {
  "images/grass_1.png",
  "images/grass_2.png",
  "images/grass_3.png"
};

// load
public void create() {
  ServiceLocator.getResourceService().loadTextures(forestTextures);
}

// unload
public void dispose() {
  ServiceLocator.getResourceService().unloadAssets(forestTextures);
}

Behind the Scenes

ResourceService is essentially a wrapper class for libgdx's AssetManager. The main reasons for having a wrapper class are to make it easier to load resources in batches, support the addition of loading screens, and to improve logging.