libgdx 学习笔记七 libgdx应用程序生命周期

简介

本章内容描述libGDX 应用程序的结构和怎么根据不同的平台版本使用不同的后台

The Application

做为任意libGDX 工程的主入口点。Application 决定平台的版本和后台图形。Application 接口提供了合适的方法来访问Graphics, Audio, Input and File I/O模块。也提供了跨平台的Logging 模块。

LibGDX 当前支持2个后端一个是desktop applications 另一个是Android applications 。创建libGDX 应用程序,首先必须实现ApplicationListener 接口

The Application Listener

为了初始化application必须实现这个接口, 它用来更新游戏状态(即逻辑),渲染出项,暂停游戏,保存状态,释放资源等。

它也有一个处理application 声明周期事件的地方。每个应用,不管后台平台版本都必须实现ApplicationListener 接口。所有平台都会存在并要实现这个接口。

应用程序中,游戏循环和ApplicationListener式游戏逻辑实现的地方。

一个简单的实现如下:

public class MyGame implements ApplicationListener {
public void create () {
// STUB
}

public void render () {
// STUB
}

public void resize (int width, int height) {
// STUB
}

public void pause () {
// STUB
}

public void resume () {
// STUB
}

public void dispose () {
// STUB
}

这些方法 由在应用声明周期中的事件触发,描述如下:

方法名

描述

create ()

当应用程序创建时,此方法被调用一次

resize(int width, int height)

 每次游戏屏幕重置尺寸并且不是暂停状态得时候调用此方法。在create()后调用一次

参数是屏幕被重置后的新宽度和高度

render ()

每次渲染发生时游戏循环调用此方法。游戏更新发生在绘制之前。意思就是说先处理逻辑,在处理绘制。

pause ()

在应用destroyed前调用此方法。在android中档Home键按下或者由重新进入程序时调用此方法。在桌面应用中,退出应用时在dispose() 之间调用

这是一个保存游戏状态的好地方,在android中resume ()不一定会被调用。

resume ()

这个方法仅在android中调用, 当应用获得焦点时. 桌面应用中将不会调用此方法。

dispose ()

 当应用destroyed时,调用此方法,在pause()之后

应用程序生命周期

上面提到的方法在应用程序的整个生命周期之间会被触发

以下图表显示一个libGDX应用经过的不同阶段:

application_lifecycle_diagram.png

创建一个桌面应用程序

以下类从先前的MyGame listener使用lwjgl创建一个桌面应用:

    public class MyDesktopGame {
public static void main(String[] args) {
new LwjglApplication(new MyGame(), "My Game", 480, 320, false);
}
}

 以下是运行结果:

他创建了一个lwjgl后台应用,像素为480X320。最后一个参数表明OpenGL ES 2没有被使用。

application_lifecycle_screen.png

以下类创建了一个桌面应用使用JOGL作为后台,使用了MyGame

    import com.badlogic.gdx.backends.jogl.JoglApplication;

public class MyDesktopGame {
public static void main(String[] args) {
new JoglApplication(new MyGame(), "My Game", 480, 320, false);
}
}

第一个例子中需要包含以下库文件。

  • gdx.jar

  • gdx-natives.jar

  • gdx-backend-lwjgl.jar

  • gdx-backend-lwjgl-natives.jar

第二个例子中需要包含以下库文件。

  • gdx.jar

  • gdx-natives.jar

  • gdx-backend-jogl.jar

  • gdx-backend-jogl-natives.jar

桌面应用程序构造函数中包含5个参数

ApplicationListener listener

为应用程序创建的ApplicationListener实例

String title

在应用程序的 title bar上显示的title

int width

屏幕高度

int height

屏幕高度

boolean useGL2

是否使用GL2,true使用2,false使用1.x

创建Android应用程序

创建android应用程序涉及到的更多,但仍然很简单。

请参考My First Triangle 教程 设置android工程。

你需要以下目录和文件

  • armeabi/

  • armeabi-v7a/

  • gdx-backend-android.jar

  • gdx.jar

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296621.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工业相机与民用相机的区别_工业相机和普通相机的区别详解

在机器视觉迅猛发展的今天,工业相机作为机器视觉的核心组件已得到广泛应用,但是很多初学者还是搞不清楚究竟工业相机与普通相机有什么区别。下面小编就带大家一起去看看工业相机和普通相机的区别吧!工业相机一、工业相机和普通相机的区别之性…

50个Android应用!Win11支持运行了

文 | 局长出品 | OSC开源社区(ID:oschina2013)Android 应用现已支持在 Windows 11 上运行。微软今日宣布,美国地区 Windows 11 Beta 通道的预览版已支持运行 Android 应用。正如公告所说,如需体验在 Windows 11 上运行…

javascript规范以及设计原则

UI layer的分离 针对CSS: 尽量不要在JS中的添加过多的动态CSS&#xff0c;可以考虑使用addClass 针对JS中的事件&#xff1a; Keep JavaScript Out of HTML 避免以下的代码 <!-- Bad --><button οnclick"doSomething()" id"action-btn">Click…

服务器的类型及作用是什么,按用途分类,服务器有哪些? - 问答库

问题&#xff1a;[问答题] 按用途分类&#xff0c;服务器有哪些&#xff1f;某工程包含两个单项工程&#xff0c;分别发包给甲、乙两个承包商。在施工中发生如下事件。事件一&#xff1a;该工程签约时的计算工程价款为1000万元&#xff0c;该工程固定要素的系数为0.2&#xff1…

删除

【题目描述】 现在&#xff0c;我的 上有 n 个数字&#xff0c;分别是 a1; a2; a3; :::; an。 我现在需要删除其中的 k 个数字。当然我不希望随随便便删除&#xff0c;我希望删除 k 数字之后&#xff0c;剩下的 n k 个数中有最多的不同的数 【输入格式】 第 两个正整数 n 和 …

你发现了吗?数学还能这么美

全世界只有3.14 % 的人关注了爆炸吧知识变身吧傅里叶&#xff01;不&#xff0c;不是变成夜礼服。图片作者&#xff1a;LucasVB和某些公然嘲笑应用的数学家不同&#xff0c;傅里叶特别重视应用领域&#xff0c;而他的傅里叶变换也不负众望成了工程和物理领域里最重要的数学公式…

clickhouse建库_ClickHouse高性能数据库

前面的文章ClickHouse之初步认识已经简单的介绍了ClickHouse&#xff0c;接下来进行简单的性能测试。测试数据来源于美国民用航班的数据&#xff0c;从1987年到2017年&#xff0c;有1.7亿条。环境&#xff1a;centos 6.3&#xff0c;32G内存&#xff0c;24核下载脚本&#xff1…

SingnalR 开发到生产部署闭坑指南

前天倒腾了一份[SignalR在react/go技术栈的实践01SignalR默认要协商传输方式SignalR 默认要求协商传输方式[1]不管是.NET客户端还是JavaScript客户端&#xff0c;构建连接时都存在一个默认配置&#xff1a;SkipNegotiationfasle&#xff0c;负负得正就等于要求协商&#xff0c;…

DB2 pureScale在线备份恢复实例1

刚刚接触DB2&#xff0c;对DB2的备份恢复机制不是太熟悉&#xff0c;相关的资料又太少&#xff0c;只好自己慢慢摸索了。 需求 对生产库进行在线压缩备份&#xff0c;备份中包含归档日志&#xff0c;定期将生产库备份恢复到测试环境&#xff0c;确保测试环境采用最新的生产数据…

华为服务器参数配置文件,最实用的华为配置基础手册.doc

经过Console 口登录应用环境用户需要经过Console 口登录到S-switch&#xff0c;图1-1 所表示。图1-1 经过Console 口登录到S-switch说明假如S-switch 是第一次上电&#xff0c;而且用户需要管理和配置S-switch&#xff0c;则用户只能经过Console 口登录到S-switch。背景信息在经…

Hibernate统计表中的条数

&#xfeff;&#xfeff;/** * 判断积分日志表中是否有某个用户的注册日志 */Transactional(propagation Propagation.REQUIRED)public boolean isExistRegPointLog(int userId, UserAction addReg) { try { String hql "select count(pl) from PointLog pl WHERE pl.…

SQL Server性能调优之执行计划深度剖析 第二节 执行计划第一次实践

SQL Server性能调优之执行计划深度剖析 第二节 执行计划第一次实践前言:自从上一篇文章发出之后&#xff0c;收到了很朋友的关注。很多朋友要求多多实践&#xff0c;而不是纯粹的理论。确实&#xff0c;从打算出这个系列开始&#xff0c;我就本着实践的思想来进行的&#xff01…

超炫物理动态图!收藏吧,吓死宝宝了...

全世界只有3.14 % 的人关注了爆炸吧知识让我们玩的有水平、有姿势&#xff0c;在玩儿的时候产生好奇心&#xff0c;下面20个简单实用的科学小游戏是不错的选择哟。友情提示&#xff1a;部分实验有危险&#xff0c;请在专业人士指导下谨慎操作~1.防火气球水能将火的热能吸收&…

promtail 配置详解_基于loki+promtail+grafana技术的日志集合

一、背景和动机近期运维工作中&#xff0c;随着项目的不停优化以及上线。在与后端、测试协同工作的交流中发现&#xff0c;为了测试以及解决项目在上线过程中或者试运行中出现的bug报错问题&#xff0c;开发同事对于日志的分析有着很大的需求。但是现在公司的日志查看主要是给予…

《Redis核心技术与实战》学习总结(2)

【Redis】| 总结/Edison Zhou1上一篇的遗留问题上一篇总结了一个KV数据库的基本架构 和 Redis的底层数据结构概览&#xff0c;重点总结了Sorted Set的两个数据结构的切换&#xff0c;但没有介绍List的两个数据结构的切换&#xff0c;因此本文试着总结一下。这里先直接给出答案&…

【转】sqlserver游标概念与实例全面解说

引言 我们先不讲游标的什么概念&#xff0c;步骤及语法&#xff0c;先来看一个例子&#xff1a; 表一 OriginSalary 表二 AddSalary 现在有2张表&#xff0c;一张是OriginSalary表--工资表&#xff0c;有三个字段0_ID 员工…

洛谷2296 寻找道路

题目描述 在有向图G 中&#xff0c;每条边的长度均为1 &#xff0c;现给定起点和终点&#xff0c;请你在图中找一条从起点到终点的路径&#xff0c;该路径满足以下条件&#xff1a; 1 &#xff0e;路径上的所有点的出边所指向的点都直接或间接与终点连通。 2 &#xff0e;在满足…

奇迹mu选区后就一直显示连接服务器,奇迹mu双开

《奇迹mu》双开方法 EX702双开的方法&#xff0c;今天小编为大家带来了奇迹MU双开方法&#xff0c;为大家解决一些双开中的问题&#xff0c;下面就一起来看看EX702双开的问题吧&#xff01;奇迹mu双开&#xff1a;接下来是这样&#xff1a;1、 复制2个客户端&#xff0c;放在不…

第十一章:【UCHome二次开发】功能修改

有些功能的修改涉及到了流程或数据需求的变动&#xff0c;这时候简单的修改模板文件已经无法解决问题&#xff0c;而是需要修改对应的流程和数据处理代码来完成。一般处理程序文件位于/source文件夹下。具体的代码修改就是根据功能逻辑来调整php代码或是sql语句&#xff0c;这里…

华为鸿蒙OS 2.0正式发布!明年华为手机将全面支持!

全世界只有3.14 % 的人关注了爆炸吧知识9 月 10 日&#xff0c;在华为开发者大会 2020 上&#xff0c;华为消费者业务 CEO 余承东宣布推出鸿蒙 OS 2.0 版本&#xff08;HarmonyOS 2.0&#xff09;。鸿蒙 OS 的代码也在今天下午HDC 2020 大会结束后的 18:18 正式开放。鸿蒙 OS 开…