LibGdx文档译读(一)Application接口

本文介绍了LibGdx游戏开发框架中的核心接口Application及其相关实现类。详细解释了如何通过实现ApplicationListener接口来构建跨平台游戏,包括创建、恢复、暂停、渲染等关键方法。同时概述了Gdx提供的图形、音频、输入等功能。

作者译读的LibGdx的版本是1.9.1

首先我们今天来讲的主角是libgdx中最重要的接口,也是我们游戏的入口基类——Application,我们平常调用的话可以使用它的简写Gdx

它所实现的类有以下五种:

GwtApplication, IOSApplication, JglfwApplication, LwjglApplication, LwjglCanvas

一个应用程序的主要入口。它设置了一个窗口和渲染表面,并管理您的应用程序的不同方面,即图形音频输入文件。也就相当于java Swing的JFrame或Android的Activity。
一个游戏程序可以是以下任何一个的实例:
  • 一个桌面应用(JglfwApplication 类为入口。我们引用的是 gdx-backends-jglfw.jar
  • 一个Android应用(AndroidApplication类为入口。我们引用的是 gdx-backends-android.jar
  • 一个HTML5应用(GwtApplication类为入口。我们引用的是gdx-backends-gwt.jar
  • 一个iOS应用(IOSApplication类为入口。我们引用的是gdx-backends-robovm.jar

每个游戏都会有一个主要的入口,在安卓程序中Libgdx采用的是在不同的方法里处理每件事。

所以你的游戏必须实现Applicationlistener接口,作者实际用的过程中,也可以采用继承ApplicationAdapter这个类,它里面会调用以下的方法:

  • create(创建)
  • resume(恢复)
  • pause(暂停)
  • render(渲染)这个方法会不停的执行
  • resize(调整大小)
  • dispose(游戏资源销毁)
你可以在对应的方法里写上对应的逻辑判断
Applicationlistener可以提供任何平台程序的实现

这意味着,你只需要写你的游戏逻辑一次,并有它运行在不同的平台上,通过它到一个具体的应用程序实现。

Application接口为您提供了一组图形、音频、输入和文件输入/输出模块。
Gdx.Graphics

为您提供输出图像到屏幕的各种方法,这是通过OpenGL ES 2.0和3.0实现的。所以这要取决与平台在Android中是可以通过java来调用的。

Gdx.Audio

为您提供各种方法来输出和记录声音和音乐。这是通过API实现的java桌面程序上的声音。在安卓系统上使用的是安卓的媒体框架

Gdx.Input

为您提供各种各样的方法来轮询用户从键盘,触摸屏,鼠标和加速度器的输入。另外你可以实现一个Inputprocessor接口和使用它的输入。在Gdx.input.setinputprocessor(inputprocessor)接收输入事件

Gdx.Files

为您提供各种方法来访问内部外部文件。桌面游戏是存储在游戏程序附近的一个文件,桌面游戏的路径是先扫描指定的文件,如果失败,那么再在你的游戏的根目录下查找。外部文件是您在应用程序中创建的资源,并将外部文件写入外部存储。
在安卓中是放在Assets目录下,在安卓外部文件驻留在SD卡上,桌面上的外部文件都写到用户所在的目录中。你也可以指定绝对文件名,绝对文件名是不可移动的,所以要小心使用这个功能的时候。

Gdx.Net

为您提供执行网络操作的各种方法,例如执行HTTP请求,或创建更复杂的网络编程的服务器端和客户端套接字

Application接口还提供了一些方法,您可以使用这些方法来查询特定的信息,如操作系统等等,然而,不建议使用。
Application接口将打印Log到标准输出到桌面和logcat Android。
Gdx.app.setLogLevel(Application.LOG_DEBUG);方法的使用会在后面的课程中讲到。

下面讲的是Application里面的方法

Gdx.app.getApplicationListener();

返回一个ApplicationListener实例;

Gdx.app.getGraphics();

返回一个Graphics实例;

Gdx.app.getAudio();

返回一个Audio实例;

Gdx.app.getInput();

返回一个Input实例;

Gdx.app.getFiles();

返回一个Files实例;

Gdx.app.getNet();

返回一个Net实例;

Gdx.app**.log**(java.lang.String tag,java.lang.String message)
Gdx.app.error(java.lang.String tag,java.lang.String message)
Gdx.app.debug(java.lang.String tag,java.lang.String message)

这三个是日志的输出

Gdx.app.setLogLevel(int logLevel);

设置输出的日志的级别

Gdx.app.getType();

返回游戏平台的类型Android or Desktop

Gdx.app.getVersion();

返回安卓Android API级别,iOS上的主要操作系统版本(5,6,7,8 , 9 , 10 …);

Gdx.app.getJavaHeap();

返回游戏占用的内存

Gdx.app.getNativeHeap();

返回游戏本地内存中使用的字节

Gdx.app.getPreferences();

返回此应用程序的Preferences它可以用来存储运行中的游戏的简单数据。

Gdx.app.getClipboard();

返回一个剪贴板对象

Gdx.app.postRunnable();

增加一个线程在主线程中

Gdx.app.exit();

退出

Gdx.app.addLifecycleListener(LifecycleListener listener)

增加了一个新的游戏生命周期监听,这可以通过扩展到更容易管理生命周期

Gdx.app.removeLifecycleListener(LifecycleListener listener);

移除生命周期

如果你觉得好,随手点赞,也是对笔者的肯定,也可以分享此文给更多的人,原创不易

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值