首页 > 其他分享 >(libgdx小结)资源加载器

(libgdx小结)资源加载器

时间:2023-05-07 22:07:12浏览次数:43  
标签:libgdx Texture manager animation 资源 小结 png 加载


一、初始化及常见的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

	}

}



三、效果图

(libgdx小结)资源加载器_ide


标签:libgdx,Texture,manager,animation,资源,小结,png,加载
From: https://blog.51cto.com/u_5290007/6252583

相关文章

  • (libgdx小结)粒子编辑器
    一、初始化方法及常见的APIeffect=newParticleEffect();//初始化粒子效果类 effect.load(Gdx.files.internal("test.p"),Gdx.files.internal(""));//加载粒子编辑器类文件effect.setPosition(Position_X,Position_Y);//设置粒子的位置effect.draw(batch,Gdx.graphics.getDe......
  • Cesium:设置加载时的初始视角
    先选好位置,并调整好视角,然后按F12打开控制台分别输入:viewer.camera.positionviewer.camera.headingviewer.camera.pitchviewer.camera.roll来分别获取你选好的位置的坐标,视角等信息,然后利用viewer.camera.setView进行设置。viewer.camera.setView({//Cesium的坐......
  • vue2使用图片懒加载之vue-lazyload
    1.为什么要进行图片懒加载呢?使用图片懒加载的主要原因是为了优化网站或应用程序的性能和用户体验。当页面中存在大量图片时,如果一次性全部加载会影响页面的加载速度,用户可能需要等待很长时间才能看到完整的页面内容,这会影响用户的体验和满意度。2.如何实现图片懒加载使用http......
  • 【B/S】引用Google或微软的CDN加载jQuery
    一、前言前文介绍了JQuery的基础知识,下面小编给大家介绍一下引用Google或微软的CDN加载jQuery。二、内容分析      在网页中我们经常使用jQuery库,选择使用的jQuery加载源,能有效加快网站的加载速度,目前最佳的选择就是使用Google或Microsoft提供的CDNjQuery源。GoogleAjaxAP......
  • Intersection Observer API 实现图片懒加载
    1,为需要延迟加载的图片设置data-src属性。<imgsrc=""data-src="image.jpg"alt="图片">2,使用IntersectionObserverAPI监听可视区域内的元素变化,并将其data-src属性值赋给src属性,显示图片。constlazyLoadImg=newIntersectionObserver((entries,observer)=>{en......
  • 无法加载响应数据: No data found for resource with given identifier
    环境Ubuntu22.04IDEADocker中使用nginx问题描述之前使用正常,今天打开前端报错,postman测试正常解决由于nginx在docker中使用,upstream不能使用127.0.0.1,需要使用本机ip,而本机ip是会变的。需要更改新的本机ip......
  • spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件)
    关键字:spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件)应用场景:很多时候我们想要在某个类加载完毕时干某件事情,但是使用了spring管理对象,我们这个类引用了其他类(可能是更复杂的关联),所以当我们去使用这个类做事情时发现包空指针错误,这是因为我们......
  • Google推荐的图片加载库Glide介绍
    Fresco以及我们今天的主角Glide。它们各有千秋,不能评定谁一定比谁好,只能说哪一个更适合你。我的理解下面我来谈一下个人对这些图片加载库的理解,如有错误,还望指教。UniversalImageLoader:一个强大的图片加载库,包含各种各样的配置,最老牌,使用也最广泛。Picasso:Square出品,必属精品......
  • Android开发:使用Glide动态加载圆形图片和圆角图片
    最新消息,鼎鼎大名的Yelp应用也转投Glide的阵营了,而且Glide在跟Listview的配合起来非常的顺畅,Glide除了配置简单,还可以本地缓存图片,也可以实现Listview图片的提前预加载,使得listview的更加的顺滑,具体可以查看Yelp的那篇博文。但是如果碰到要把加载下来的图片转成圆角或者圆形的图......
  • java -cp 错误:找不到或无法加载主类
    java-cp错误:找不到或无法加载主类1.问题场景在一个项目开发中,我需要写一个windows的bat脚本,需要在里面调用SpringBoot项目生成的jar包,我在调用classes下面的jar时通过调用jar包去调用jar包中的某个.java类总是报错误:找不到或无法加载主类最后搞的我心态都崩了,明......