加载资产的好习惯LibGDX HTML(GWT)

时间:2014-11-26 19:58:14

标签: java gwt libgdx assets

由于GWT HTML5部署,我正在创建一个主要在浏览器上运行的游戏。我在图像和声音之间有相当多的MB资产。显然我并不是一直都需要它们。我想加载它们取决于接下来的屏幕和其他参数。这是特别关键的,因为我的主要部署将在web上(在启动时不能加载所有50MB以防万一它们将被使用)。

我真的不知道资源加载在HTML5上如何对LibGDX起作用。我想使用AssetManager或类似的东西加载我的TextureAtlases和Sounds,但我认为HTML5部署只是在开始时加载所有内容,无论我以后在核心项目中使用AssetManager。

使用libGDX和GWT的正确资产加载管道是什么。从核心项目加载所有内容将是非常棒的,因为这种方式对于未来将是多平台的,但现在并不重要,因此重要的部分是在网络上明智地加载资产。

提前致谢。

1 个答案:

答案 0 :(得分: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);