Хорошая практика загрузки ресурсов LibGDX HTML (GWT)

1

Я создаю игру, которая будет в основном работать в браузере благодаря развертыванию GWT HTML5. У меня довольно много МБ ресурсов между изображениями и звуками. Очевидно, я не нуждаюсь в них во все времена. Я бы хотел загрузить их в зависимости от экрана следующего и других параметров. Это особенно важно, потому что мое основное развертывание будет в сети (не может загружать все 50 МБ при запуске на случай, если они будут использоваться).

Я действительно не знаю, как действительно загружается загрузка LibGDX на HTML5. Я хотел бы использовать AssetManager или что-то похожее на загрузку TextureAtlases и звуков, но я думаю, что развертывание HTML5 просто загружает все в начале, независимо от того, буду ли я позже использовать AssetManager в основном проекте.

Что будет правильным конвейером загрузки ресурсов с помощью libGDX и GWT. Было бы потрясающе загружать все из основного проекта, потому что таким образом будет многоплатформенным для будущего, но сейчас это не так важно, поэтому важной частью является загрузка активов с умом в Интернете.

Заранее спасибо.

Теги:
libgdx
gwt
assets

1 ответ

0
Лучший ответ

Мой рекомендуемый способ управления активами:

// 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);
  • 0
    Это более или менее то, что я делаю, но у меня довольно большой проект. Я называю разную загрузку на каждом новом экране (который в основном создает атлас текстуры) с изображениями, необходимыми для каждого экрана. Поэтому у меня есть пакет текстур для каждого экрана. Глядя на загрузку сервера, GWT загружает их все в начале, несмотря ни на что. Мне было интересно, есть ли способ избежать этого и заставить LibGDX делать запросы во время выполнения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню