Libgdx 开发指南(1.2) 应用框架——模块概览
2014-04-03 10:25
309 查看
模块概览
引言
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) 应用框架
- Libgdx 开发指南(1.1) 应用框架——生命周期
- Libgdx 开发指南(1.3) 应用框架——查询、日志
- iOS快速开发框架Bee-Framework应用和解析(二) --- Bee framework架构概览
- iOS快速开发框架Bee-Framework应用和解析(二) - Bee framework架构概览
- ionic3框架开发-SRM移动应用之待办事项模块
- Android应用开发必需集成的模块框架
- 使用Python编写爬虫的基本模块及框架使用指南
- Java企业应用开发框架Spring框架简介
- Android游戏开发框架libgdx的使用
- .net企业库-数据处理模块-使用DAAB来开发应用
- 工作流应用,jBPM 开发指南
- 实战揭秘:开发.Net平台应用系统框架 (4)
- 使用 CodeIgniter 框架快速开发 PHP 应用(二)
- Android应用开发笔记(12):Android应用的自动升级、更新模块的实现
- Portal-Basic Java Web 应用开发框架:应用篇(一) —— 配置文件
- NET框架开发平台的体系架构概览(FCL,CTS,CLS)
- Portal-Basic Java Web 应用开发框架:应用篇(十三) —— REST Convention
- Web开发设计DisplayTag应用指南
- 基于Spring Boot框架企业级应用系统开发全面实战(Spring Boot,Spring MVC,Maven,bootstrap,angular js)