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();
}
}
四、程序截图
源码下载


猜你喜欢
- 本文实例讲述了C#用匿名方法定义委托的实现方法。分享给大家供大家参考。具体实现方法如下://用匿名方法定义委托 class Program
- 一、概述顶部ViewPager指示器的字体变色,该效果图是这样的:大概是今天头条的app,神奇的地方就在于,切换ViewPager页面的时候
- 本文实例为大家分享了java实现按层遍历二叉树,按层遍历二叉树可以通过队列来实现。其主要思路如下:1、先将根节点放入队列中2、每次都从队列中
- 将C语言封装成函数dll供C#端调用,需要传递的byte数组作为函数参数来传递。1、打开Visual Studio2017创建一个C的dll
- 前言上篇博文把表连接查询和三种对应关系的写法记录总结了,本篇要把 mybatis 中的动态sql 的使用以及缓存知识记录下来。动态SQL在解
- JDK * ,代理接口没有实现类,实现 * JDK代理,代理的是接口,那么笔者想一想,既然代理的是接口,那如果没有实现类怎么办,能不能代
- 一、栈1.1 概述Java为什么要有集合类: 临时存储数据。链表的本质: 对象间通过持有和引用关系互相关联起来。线性表: 普通线性表, 操作
- synchronized原理在java中,每一个对象有且仅有一个同步锁。这也意味着,同步锁是依赖于对象而存在。当我们调用某对象的synchr
- 详细步骤首先在pom.xml文件中做一些修改:之前打war包需要修改打包方式,这次不需要了,因为默认就是 jar 包指定最终打成jar包的名
- 本文实例讲述了Java自定义注解用法。分享给大家供大家参考,具体如下:一 自定义注解语法[public] @interface Annota
- 本文介绍了spring整合JMS实现同步收发消息(基于ActiveMQ的实现),分享给大家,具体如下:1. 安装ActiveMQ注意:JDK
- Service翻译成中文是服务,熟悉Windows 系统的同学一定很熟悉了。A
- 废话不多说了,关键代码如下所示:import java.util.*;public class Demo04 {public static
- 有这样一个有关汽车的类。public class Car {  
- 背景介绍公司最近做分库分表业务,接入了 Sharding JDBC,接入完成后,回归测试时发现好几个 SQL 执行报错,关键这几个表都还不是
- 在本次项目中,由于时间紧张直接使用DWR做Ajax请求!要求的是动态展示,那就需要使用DWR轮询请求,但是需要做异常情况下的一些处理!特别是
- 本文实例讲述了C#监控文件夹变化的方法。分享给大家供大家参考。具体实现方法如下:当需要监控某一文件,FileSystemWatcher类提供
- 本文实例为大家分享了android多媒体音乐播放器的具体实现代码,供大家参考,具体内容如下首先,在AndroidManifest.xml中配
- Android Studio配置Kotlin开发环境详细步骤第一步:安装Kotlin插件打开Settings面板,找到Plugins选项,点
- 今天做项目的时候,遇到一个问题,如果我调用某个服务的接口,但是这个服务挂了,同时业务要求这个接口的结果是必须的,那我该怎么办呢,答案是通过h