libgdx引擎是专门为游戏设计的引擎,它提供了一个非常有用的工具,即为AssetManager,简单的说就是一个资源异步加载和资源自动管理类

目前支持Pixmaps、Textures、BitmapFonts、TextureAtlases、TiledAtlases、TileMapRenderers、Music、Sound这些类型的资源。

使用方法:

  1. assetManager.load("data/img/bg.png", Texture.class);
  2. assetManager.load("data/font/chinese.fnt", BitmapFont.class);
  3. assetManager.load("data/music/op_head.ogg", Music.class);
  4. assetManager.load("data/pack/task1.pack", TextureAtlases.class);
  5. Music instances 通过 MusicLoader    Sound instances 通过 SoundLoader
Update方法才会加载资源
当其为True时即加载完成,为False就表示还在加载。
比如当前加载到百分之多少了以方便绘制进度条,可以使用getProgress方法,该方法返回一个0到1之间的数字。
synchronourAssetLoader同步资源加载器
asynchronourAssetLoader异步资源加载器
前者加载任何资源都在渲染进程中,后者加载资源在另外一个线程中。
 
所谓异步加载就是另开一个线程而不在渲染线程里面,同步就是在render()线程里加载咯…而这两种加载方式相对UI线程都是异步的。
Animation animation;
//设置的是0.06s一帧
  •        animation = new Animation(0.06f, walksFrame);
//查看哪些还未加载(Queued)队列 /已载入完成的资源的数量(Loaded)
  if(!assetManager.update()){
   System.out.println("QueuedAssets:"+assetManager.getQueuedAssets());
   System.out.println("Loaded:"+assetManager.getLoadedAssets());
   System.out.println("当前百分比:"+assetManager.getProgress());
  }

stateTime+=Gdx.graphics.getDeltaTime();   //得到下一帧   currentFrame=animation.getKeyFrame(stateTime, true);   //以(0,0)绘制为起点(左下角为0,0)画出动画,大小128*128

  batch.draw(currentFrame,240, 400,128,128);