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 上运行…

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

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

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

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

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

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

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

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

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

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

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

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

洛谷2296 寻找道路

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

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

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

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

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

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

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

微软认真聆听了开源 .NET 开发社区的炮轰: 通过CLI 支持 Hot Reload 功能

微软近日激怒了开源.NET社区,起因是它删除了开源.NET的一项旗舰功能,以提升Visual Studio 的吸引力,尤其是针对与Visual Studio颇有渊源的跨平台源代码编辑器Visual Studio Code。好消息是微软听取了社区的声音,恢复了通过CLI支持…

烽火服务器查询服务器型号,烽火服务器应该起的进程

烽火服务器应该起的进程 内容精选换一换IDE Daemon模块提供接口给Matrix和Framework调用,Matrix通过这些接口可以实现将DVPP预处理结果数据发送到IDE-daemon-hiai进程所在的服务器,IDE-daemon-hiai将结果数据写到文件中;Framework通过调用这些…

(译)元素浮动的那些事儿

原文:http://bitsofco.de/2015/how-floating-works/,作者 Ire Aderinokun 发表于 2015 年 8 月 11 日。 尽管我们现在用浮动布局已经很少了,但是在一些特殊的需求下,它仍然是唯一可行的解决方案。在这些少见的需求中,浮…

无法定位程序输入点dxgiget_美国ABB TZIDC 智能定位器调试方法

一、ABBTZID-C 智能定位器安装及操作气路连接使用与定位器气源端口处标识的标准接口连接气源连接定位器的输出与气动执行器的气缸电气连接根据下列接线端子图以及设计要求进行相应的配线(一般只需11,-12,31,-32)11-12控制信号输入端子(DC4---…

这个黑科技小音箱,不用连蓝牙、一触即播

▲ 点击查看以前用蓝牙音箱,都要打开蓝牙找半天,有时还找不到对应的音箱。找到了,连接又很 …… 漫长 ……一句「请等待蓝牙配对」重复好几遍还没连上,整个人都不好了。而今天介绍的这个开物灵犀感应音箱,不用连蓝牙&a…

Win11运行安卓超详细教程!芜湖起飞!

一、前提Windows 11 版本号为 Build 22000.xxx 或更高版本。您的电脑硬件 BIOS/UEFI 支持虚拟化功能。二、支持本教程适用于 Windows 11 正式版和预览版,包括 Dev 频道、Beta 频道和 Release Preview 频道。本教程适用于搭载 Intel 和 AMD 等处理器的 Windows 11 电…

精品教程--Android实战系列源码与教程

下载源码 知识技能概要: 1. 此套为零基础源码与教程 2. 包括了Android应用开发所有技术 3. 配套2011QQ效果实现项目源码 4. 堪称最详细中文源码注释 ...... 详细介绍: 1. 零基础源码与教程 本套源码与教程,由我们具有丰富开发经验的高级程师针对需要学习…

mdx 聚合函数

聚合函数Aggregation(set_express, numeric_express), Aggregation(http://msdn.microsoft.com/zh-cn/library/ms145524.aspx)执行求和函数, 如果和某些其他求和函数配合的话, 会有变化. 看一个例子 SELECT { ([Measures].[Reseller Sales Amount]), ([M…

被小学数学题套路到哭!这些“逆天”题目,谁做谁知道…

全世界只有3.14 % 的人关注了爆炸吧知识看着孩子的作业题,有多少爸爸妈妈感叹着,幸亏自己毕业早,要不然小学都不能毕业!这不,最近一道简单的小学数学题,又刷爆了家长们的朋友圈。一起往下看。算一算图中的这…