(libgdx小结)资源加载器

一、初始化及常见的API

manager = new AssetManager();//初始化资源管理器
manager.load("animation.png", Texture.class);//预加载资源

manager.unload("animation.png");//卸载资源

manager.isLoaded("animation.png",Texture.class)//判断资源animation.png是否已经加载

manager.get("animation.png", Texture.class).根据资源的名字来获取相应的资源


 AssetManager 类

API定义 负责加载类似于 textures, bitmapfonts, tile maps, sounds, music 等类型的文件。

功能方法:(1) clear() 方法:清空和删除所有已加载资源和预加载队列。

(2) containsAsset(T asset) :返回的是一个布尔类型,检测是否加载了否个资源。

 (3) finishLoading() 所有资源加载完成后,结束加载资源,也可以手动设置加载到某一项结束加载。

(3)getAssetFileName(T asset) :获取资源名字,得到的是一个String类型的文件。

(4) getLoadedAssets()   获取已经加载的资源数量。

(5)getProgress() 获取加载进度,返回一个0 - 1之间的小数,这个一般可以用作制作进度条。

(6) isLoaded(java.lang.String fileName)  :返回的是一个布尔类型,检测你传入的文件是否已经被加载了,一般使用的if判断语句中。

(7) load(java.lang.String fileName, java.lang.Class<T> type)   将已传入的文件名和类型加入到预加载队列,为了防止名字和类型重复,这里需要将名字和类型都传入,常用。

(8)setLoader(java.lang.Class<T> type, AssetLoader<T,P> loader) 设置加载器,其实AssetManager类中包装了需要Assetloader对象,这样才能完成不同类型的文件的加载,当然AssetManager也可以加入加载器。

(9) unload(java.lang.String fileName)   卸载资源,如果某个资源不使用了,就可以卸载该资源,这样有利于游戏流畅性。

(10)update():加载资源,实际上Load方法其实只是将预加载的资源加载到了预加载队列,实质上并没有加载资源,使用 update()方法才会加载资源,调用该方法才能,使不断加载那写储存在预加载对了中的资源。

功能优点:(官方翻译)

(1)加载大部分资源采用异步加载的方式,这样就能在加载的同时不阻塞渲染进程.

(2)实现了引用计数,当A和B都依赖C素材的时候,C只有在A,B都销毁了才会销毁.这也意味着即使一个资源加载了很多次,在内存中也之后一份.

(3)使用一个单一管理器来实现管理所有素材.

(4)可以实现加载素材时占用的系统内存。


二、应用举例

package com.example.groupactiontest;

import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.assets.AssetManager;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

public class MyGame implements ApplicationListener {

	AssetManager manager;//资源管理器
	SpriteBatch batch;
	
	@Override
	public void create() {
		batch = new SpriteBatch();
		manager = new AssetManager();//初始化资源管理器
		
		manager.load("animation.png", Texture.class);//预加载资源
				
	}

	@Override
	public void dispose() {
		manager.unload("animation.png");//卸载资源
	}

	@Override
	public void pause() {
		manager.unload("animation.png");
	}

	@Override
	public void render() {
		Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
		
		manager.update();//加载资源
		
		if(manager.isLoaded("animation.png",Texture.class)){//判断资源animation.png是否已经加载
			batch.begin();
			
			batch.draw(manager.get("animation.png", Texture.class), 0,0);//manager.get("animation.png", Texture.class).根据资源的名字来获取相应的资源
		    
			batch.end();
		}
	}

	@Override
	public void resize(int arg0, int arg1) {
		// TODO Auto-generated method stub

	}

	@Override
	public void resume() {
		// TODO Auto-generated method stub

	}

}


三、效果图



四、源码下载

http://download.csdn.net/detail/caihongshijie6/7010675

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅气的东哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值