Я создаю игру, которая будет в основном работать в браузере благодаря развертыванию GWT HTML5. У меня довольно много МБ ресурсов между изображениями и звуками. Очевидно, я не нуждаюсь в них во все времена. Я бы хотел загрузить их в зависимости от экрана следующего и других параметров. Это особенно важно, потому что мое основное развертывание будет в сети (не может загружать все 50 МБ при запуске на случай, если они будут использоваться).
Я действительно не знаю, как действительно загружается загрузка LibGDX на HTML5. Я хотел бы использовать AssetManager или что-то похожее на загрузку TextureAtlases и звуков, но я думаю, что развертывание HTML5 просто загружает все в начале, независимо от того, буду ли я позже использовать AssetManager в основном проекте.
Что будет правильным конвейером загрузки ресурсов с помощью libGDX и GWT. Было бы потрясающе загружать все из основного проекта, потому что таким образом будет многоплатформенным для будущего, но сейчас это не так важно, поэтому важной частью является загрузка активов с умом в Интернете.
Заранее спасибо.
Мой рекомендуемый способ управления активами:
// load texture atlas
final String spriteSheet = "images/spritesheet.pack";
assetManager.load(spriteSheet, TextureAtlas.class);
// blocks until all assets are loaded
assetManager.finishedLoading();
// all assets are loaded, we can now create our TextureAtlas object
TextureAtlas atlas = assetManager.get(spriteSheet);
// (optional) enable texture filtering for pixel smoothing
for (Texture t: atlas.getTextures())
t.setFilter(TextureFilter.Linear, TextureFilter.Linear);
Теперь, чтобы загрузить спрайт, который вы делаете:
// Create AtlasRegion instance according the given <atlasRegionName>
final String atlasRegionName = "regionName";
AtlasRegion atlasRegion = atlas.findRegion(atlasRegionName);
// adjust your sprite position and dimensions here
final float xPos = 0;
final float yPos = 0;
final float w = asset.getWidth();
final float h = asset.getHeight();
// create sprite from given <atlasRegion>, with given dimensions <w> and <h>
// on the position of the given coordinates <xPos> and <yPos>
Sprite spr = new Sprite(atlasRegion, w, h, xPos, yPos);