Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 加载资产LibGDX HTML(GWT)的良好实践_Java_Gwt_Libgdx_Assets - Fatal编程技术网

Java 加载资产LibGDX HTML(GWT)的良好实践

Java 加载资产LibGDX HTML(GWT)的良好实践,java,gwt,libgdx,assets,Java,Gwt,Libgdx,Assets,由于GWT HTML5的部署,我正在创建一个主要在浏览器上运行的游戏。我有相当多的图像和声音之间的资产MB。很明显,我并不总是需要它们。我想根据接下来的屏幕和其他参数加载它们。这一点特别重要,因为我的主要部署将在web上(启动时无法加载所有50MB,以防它们被使用) 我真的不知道HTML5上LibGDX的资产加载是如何工作的。我想使用AssetManager或类似的工具来加载我的纹理动画和声音,但我认为HTML5部署只是在一开始加载所有内容,不管我以后是否在核心项目中使用AssetManager

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

我真的不知道HTML5上LibGDX的资产加载是如何工作的。我想使用AssetManager或类似的工具来加载我的纹理动画和声音,但我认为HTML5部署只是在一开始加载所有内容,不管我以后是否在核心项目中使用AssetManager

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


提前感谢。

我推荐的资产管理方法:

// 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);
//根据给定的
最终字符串atlasRegionName=“regionName”;
AtlasRegion AtlasRegion=atlas.findRegion(atlasRegionName);
//在此调整精灵的位置和尺寸
最终浮点数xPos=0;
最终浮点数yPos=0;
最终浮动w=asset.getWidth();
最终浮动h=asset.getHeight();
//从给定的、具有给定尺寸和
//关于给定坐标的位置和
Sprite spr=新的Sprite(atlasRegion、w、h、xPos、YPO);

这或多或少是我的工作,但我有一个相当大的项目。我为每个新屏幕调用不同的加载(这基本上创建了一个纹理图集),其中包含每个屏幕所需的图像。因此,我有一个纹理包为每个屏幕。查看服务器负载GWT在一开始就将它们全部加载,不管发生什么。我想知道是否有办法避免这种情况,让LibGDX在运行时发出请求。