Libgdx 开发指南(1.2) 应用框架——模块概览
模块概览
引言
LibGDX由一些为一个典型游戏架构中的各个步骤提供服务的模块组成。
- Input:为所有平台提供一致的输入模型与处理器。支持键盘、触屏、加速度传感器与鼠标。
- Graphics:使用硬件提供的OpenGL ES实现在屏幕上绘图。
- Files:在所有平台上的抽象文件访问。提供方便的读写操作而无需关心媒介。
- Audio:在所有平台上支持录音与声音的播放。
- Net:提供网络操作的方法,例如简单的HTTP Get与Post请求,以及TCP searver/client的socket通信。
如下流程图显示了一个简单游戏架构中的各个模块。

接下来的部分简要描述各模块提供的最常用的用例。
模块
Input
输入模块在每个平台上轮询不同的输入状态。它可以轮询按键、触屏和加速度传感器的状态。在Desktop上,触屏事件由鼠标事件代替,而加速度传感器是不可用的。
提供注册输入处理器以使用事件驱动的输入模型的方法。
如果在处理过程中有触摸(点击)事件发生,下面的代码片段获得当前的触摸点坐标:
if (Gdx.input.isTouched()) {
System.out.println("Input occurred at x=" + x + ", y=" + y);
}
类似的方式可以用来轮询并处理其他支持的输入方式。
Graphics
图形模块抽象了和GPU的通信,方便获得OpenGL ES包装器的实例。根据不同的硬件,包装器可能是可用的也可能是不可用的。
提供生成像素和纹理的方法。
例如为了获得OpenGL API 1.0的实例,可以使用如下代码:
GL10 gl = Gdx.graphics.getGL10 ();
该方法返回一个实例用来再屏幕上绘图,当硬件不支持OpenGL ES v1.0时,则返回null。
如下代码清空屏幕并填充屏幕为红色:
gl.glClearColor(0.1f, 0.0f, 0.0f, 1);
gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
它总是返回具体的API实现(lwjgl,jogl或android),所以主应用不需要知道细节,只要平台支持就能工作。
支持的API版本:
| GL Version | Method to access |
|---|---|
| 1.0 | Gdx.graphics.getGL10(); |
| 1.1 | Gdx.graphics.getGL11(); |
| 2.0 | Gdx.graphics.getGL20(); |
Files
文件模块提供平台无关的文件访问以简化文件读写。由于平台安全限制,写文件会有些许受限。
最常见的用例是从所有平台同一个子目录中加载游戏资源(图形结构,声音文件)。也可以用来将高分记录或游戏状态写入到文件。下面的例子从目录$APP_DIR/assets/textures中读取一个结构文件:
Texture myTexture = new Texture(Gdx.files.internal(“assets/texture/brick.png”));
这是一个很强大的抽象层,可以在Android和Desktop上工作。
Audio
音频模块简化了重建与回放音频文件的过程,也提供直接访问音频硬件的接口。
可以处理两类音频文件:音乐和声音。两种类型都支持WAV,MP3和OGG格式。
声音实例可以加载到内存随时播放。适用于多次使用的游戏音效,例如爆炸声、枪声。
音乐实例是从文件读取的流,每次播放的时候都从文件读取音频流发送到音频设备中。
下面的代码片段反复播放myMusicFile.mp3文件,音量调为50%:
Music music = Gdx.audio.newMusic(Gdx.files.getFileHandle("data/myMusicFile.mp3", FileType.Internal));
music.setVolume(0.5f);
music.play();
music.setLooping(true);
Net
TBD
Libgdx 开发指南(1.2) 应用框架——模块概览的更多相关文章
- Libgdx 开发指南(1.1) 应用框架——生命周期
生命周期 Libgdx应用有一个定义好的生命周期,控制着整个应用的状态,例如creation, pausing, resuming, disposing ApplicationListener 开发者 ...
- Libgdx 开发指南(1.3) 应用框架——查询、日志
查询 Application接口提过多种方法查询运行时环境属性. 获得应用类型 有时候根据运行平台需要处理一些具体的逻辑,可以使用 Application.getType() 方法来返回应用所运行的平 ...
- Libgdx 开发指南(1) 应用框架
应用框架 模块 Libgdx包含五个核心接口与操作系统交互,各自实现了如下接口: Application:运行应用,向client通知应用层事件,例如窗口大小的改变(window resizing). ...
- Libgdx 开发指南——目录
本系列文档选译自libgdx github项目 wiki : https://github.com/libgdx/libgdx/wiki 由于关于Libgdx的中文文档非常稀缺,因此在这里对官方Wik ...
- 第六模块:WEB框架开发 第1章·Django框架开发1~50
01-Django基础介绍 02-Web应用程序1 03-Web应用程序2 04-http请求协议1 05-http请求协议2 06-http协议之响应协议 07-wsgire模块1 08-wsgir ...
- 开发指南专题二:JEECG微云高速开发平台JEECG框架初探
开发指南专题二:JEECG微云高速开发平台JEECG框架初探 2.JEECG框架初探 2.1演示系统 打开浏览器输入JEECG演示环境界址:http://demo.jeecg.org:8090/能够看 ...
- 基于Asterisk的VoIP开发指南——Asterisk 模块编写指南(1)
原文:基于Asterisk的VoIP开发指南--Asterisk 模块编写指南(1) 1 开源项目概述 Asterisk是一个开源的软件包,通常运行在Linux操作系统平台上.Asterisk可以用三 ...
- Jdon框架开发指南
Jdon框架快速开发指南 开发主要步骤如下: JdonFramework6.0以上两步开发见这里. 快速配置指南 新增/查询/修改/删除(CRUD); 批量查询和分页显示 本文Step By Step ...
- 移动IM开发指南3:如何优化登录模块
<移动IM开发指南>系列文章将会介绍一个IM APP的方方面面,包括技术选型.登陆优化等.此外,本文作者会结合他在网易云信多年iOS IM SDK开发的经验,深度分析实际开发中的各种常见问 ...
随机推荐
- (6) 深入理解Java Class文件格式(五)
前情回顾 本专栏的前几篇博文, 对class文件中的常量池进行了详细的解释. 前文讲解了常量池中的7种数据项, 它们分别是: CONSTANT_Utf8_info CONSTANT_NameAndTy ...
- Linux的加密认证功能以及openssl详解
一.详细介绍加密.解密技术 现在的加密/解密技术主要有三种:对称加密,非对称加密,和单向加密 这三种加密解密技术的组合就是现在电子商务的基础,它们三个有各自最适合的领域,而且所要完成的功能也是不同的, ...
- SNMP OID列表 监控需要用到的OID
zabbix的snmp监控还没开始讲,不过先给大家列一些snmp常用的一些OID,比如cpu.内存.硬盘什么的.先了解这些,在使用snmp监控服务器. 系统参数(1.3.6.1.2.1.1) OID ...
- [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序处理并发
这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第十篇:为ASP.NET MVC应用程序 ...
- JavaScript格式化时间
最近最练习遇到一个问题,就是从数据库中获取时间,利用EasyUI界面来显示时间类型的生日,发现它是按照毫秒来计算的long型数据,在界面显示并不能到达到一目了然,这里可以用两种方法来解决这个问题 在d ...
- Logistic回归模型和Python实现
回归分析是研究变量之间定量关系的一种统计学方法,具有广泛的应用. Logistic回归模型 线性回归 先从线性回归模型开始,线性回归是最基本的回归模型,它使用线性函数描述两个变量之间的关系,将连续或离 ...
- 基础笔记3(一)(String StringBuilder StringBuffer 数组)
---恢复内容开始--- 1数组.有序的同类型的集合. 2.string :字符串类型:其实就是一个字符数组.添加了private final,所以string是一个不可以变的字符串. String. ...
- Deep Learning 4_深度学习UFLDL教程:PCA in 2D_Exercise(斯坦福大学深度学习教程)
前言 本节练习的主要内容:PCA,PCA Whitening以及ZCA Whitening在2D数据上的使用,2D的数据集是45个数据点,每个数据点是2维的.要注意区别比较二维数据与二维图像的不同,特 ...
- vim 替换操作
全局替换真正使用的是两个ex命令 g(global) 和 :s(switch) 1.替换命令语法 :s/old/new/ 这将把当前模式中的第一个old替换为new 2.替换命令语法 :s/old/n ...
- SpringMVC -- 梗概--贰
1.为什么要配置: mvc:annotation-driven 1>在springMVC的处理流程中,有两个重要组件:HandlerMapping和HandlerAdapter 分别负责解析Ha ...