Android 游戏引擎libgdx 资源加载进度百分比显示案例分析

时间:2023-05-12 12:18:46 

因为案例比较简单,所以简单用AndroidApplication -> Game -> Stage 搭建框架
一、主入口,无特殊


public class App extends AndroidApplication {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//初始化Demo
initialize(new Demo(), false);
}
}


二、游戏主类
这里我们需要资源加载器来管理资源,这里为了测试,可以多加载些图片效果明显点。这里我们还使用了舞台,使用了自适应分辨率。
这里的关键是在渲染方法中不断的刷新资源管理器,并且获取当前加载进度,把它传给舞台处理。


public class Demo extends Game {
// 资源管理器
private AssetManager assetManager = null;
// 舞台子类
private Scene scene = null;
@Override
public void create() {
// 生成资源管理器
assetManager = new AssetManager();
// 加载测试图片
for (int i = 1; i <= 6; i++)
assetManager.load("map" + i + ".png", Texture.class);
// 生成舞台,480x800为基准分辨率,默认延伸
scene = new Scene(480, 800);
}
@Override
public void render() {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
// 刷新资源管理器
assetManager.update();
// 获取资源加载百分比,1代表100%
float progress = assetManager.getProgress();
scene.draw(progress);
}
}


三、舞台类
这里没有特别的地方,只是将获取的进度参数展示出来。


public class Scene extends Stage {
private BitmapFont font;
public Scene(float width, float height) {
super(width, height, true);
font = new BitmapFont(Gdx.files.internal("f.fnt"), false);
font.setScale(0.6f);
}
public void draw(float t) {
super.draw();
batch.begin();
if (t < 1.0f) {
font.draw(batch, "Loading " + (int) (t * 100) + "%", 20f,
height / 2f);
} else {
font.draw(batch, "loaded successfully", 20f, height / 2f);
}
batch.end();
}
}


四、程序截图
Android 游戏引擎libgdx 资源加载进度百分比显示案例分析  Android 游戏引擎libgdx 资源加载进度百分比显示案例分析
源码下载

标签:游戏引擎,加载进度,百分比
0
投稿

猜你喜欢

  • springboot访问静态资源遇到的坑及解决

    2022-11-06 14:45:11
  • 解决springboot项目不配置数据源启动报错问题

    2022-04-27 23:12:21
  • Android之有效防止按钮多次重复点击的方法(必看篇)

    2022-03-15 01:30:34
  • 条件数据库Android:sqllite的简单使用

    2023-07-11 15:39:24
  • 如何解决android Toast重复显示

    2023-08-19 00:36:56
  • c#生成验证码程序

    2023-01-08 18:38:59
  • IDEA:Git stash 暂存分支修改的实现代码

    2023-11-29 09:16:35
  • 如何更优雅的关闭java文本、网络等资源

    2021-12-31 03:48:28
  • Android 正则表达式验证手机号、姓名(包含少数民族)、身份证号

    2022-05-26 02:17:11
  • Netty分布式获取异线程释放对象源码剖析

    2021-12-28 09:45:42
  • Java如何实现http接口参数和返回值加密

    2023-08-23 12:28:37
  • Java中Map与JSON数据之间的互相转化

    2021-10-26 01:56:19
  • 深入理解java final不可变性

    2023-02-11 20:17:27
  • Android 全局Dialog的简单实现方法

    2021-06-28 10:14:40
  • spring AOP的After增强实现方法实例分析

    2023-06-10 13:52:06
  • Android Studio 通过登录功能介绍SQLite数据库的使用流程

    2023-09-22 00:37:29
  • Spring Security添加验证码的两种方式小结

    2021-08-05 17:24:25
  • Spring Boot实现Undertow服务器同时支持HTTP2、HTTPS的方法

    2021-09-23 17:02:30
  • Java面向对象之内部类案例讲解

    2021-09-16 13:28:19
  • Java 反射机制实例详解

    2023-11-28 03:49:47
  • asp之家 软件编程 m.aspxhome.com