模块概览

引言


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) 应用框架——模块概览的更多相关文章

  1. Libgdx 开发指南(1.1) 应用框架——生命周期

    生命周期 Libgdx应用有一个定义好的生命周期,控制着整个应用的状态,例如creation, pausing, resuming, disposing ApplicationListener 开发者 ...

  2. Libgdx 开发指南(1.3) 应用框架——查询、日志

    查询 Application接口提过多种方法查询运行时环境属性. 获得应用类型 有时候根据运行平台需要处理一些具体的逻辑,可以使用 Application.getType() 方法来返回应用所运行的平 ...

  3. Libgdx 开发指南(1) 应用框架

    应用框架 模块 Libgdx包含五个核心接口与操作系统交互,各自实现了如下接口: Application:运行应用,向client通知应用层事件,例如窗口大小的改变(window resizing). ...

  4. Libgdx 开发指南——目录

    本系列文档选译自libgdx github项目 wiki : https://github.com/libgdx/libgdx/wiki 由于关于Libgdx的中文文档非常稀缺,因此在这里对官方Wik ...

  5. 第六模块: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 ...

  6. 开发指南专题二:JEECG微云高速开发平台JEECG框架初探

    开发指南专题二:JEECG微云高速开发平台JEECG框架初探 2.JEECG框架初探 2.1演示系统 打开浏览器输入JEECG演示环境界址:http://demo.jeecg.org:8090/能够看 ...

  7. 基于Asterisk的VoIP开发指南——Asterisk 模块编写指南(1)

    原文:基于Asterisk的VoIP开发指南--Asterisk 模块编写指南(1) 1 开源项目概述 Asterisk是一个开源的软件包,通常运行在Linux操作系统平台上.Asterisk可以用三 ...

  8. Jdon框架开发指南

    Jdon框架快速开发指南 开发主要步骤如下: JdonFramework6.0以上两步开发见这里. 快速配置指南 新增/查询/修改/删除(CRUD); 批量查询和分页显示 本文Step By Step ...

  9. 移动IM开发指南3:如何优化登录模块

    <移动IM开发指南>系列文章将会介绍一个IM APP的方方面面,包括技术选型.登陆优化等.此外,本文作者会结合他在网易云信多年iOS IM SDK开发的经验,深度分析实际开发中的各种常见问 ...

随机推荐

  1. [课程设计]Scrum 2.3 多鱼点餐系统开发进度 (订单一览设计)

    Scrum 2.3 多鱼点餐系统开发进度  (订单一览设计) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统 ...

  2. twemproxy - Proxy Server for Redis 安装测试

    1. 安装 (1) 系统环境 测试用的服务器为阿里云ECS,4核8G,CentOS6.3 64bit. 部署了3个Redis实例,监听端口号为7410,7420,7430,设置maxmemory为25 ...

  3. NSISの堆栈操作

    一 .堆栈 堆栈是 NSIS 维护的一堆数据,你可以根据需要往堆栈中存入任意大小的数据(as big as you like),所以你可以向堆栈中推入或读取数据,堆栈只有一个,堆栈遵守 LIFO (后 ...

  4. Jquery 复习练习(02)Javascript 与jquery 互转 onclick 与click区别

    Javascript 与jquery 互转 jquery 为<script src="jquery-1.8.3.js"></script> 以checkbo ...

  5. Swift高级语法学习总结

    Swift基础语法学习总结Swift高级语法学习总结Swift语法总结补充(一) 1.函数 1.1 func funcNmae()->(){} 这样就定义了一个函数,它的参数为空,返回值为空,如 ...

  6. 特征的SID表、M表、P表、Q表、X表、Y表、T表

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  7. WebClient上传音频文件

    //WebClient上传音频文件 public string UploadVoice(string fileNamePath) { Voice model=new Voice(); string s ...

  8. 深入浅出设计模式——职责链模式(Chain of Responsibility Pattern)

    模式动机 职责链可以是一条直线.一个环或者一个树形结构,最常见的职责链是直线型,即沿着一条单向的链来传递请求.链上的每一个对象都是请求处理者,职责链模式可以将请求的处理者组织成一条链,并使请求沿着链传 ...

  9. LTE Module User Documentation(翻译11)——配置用户测量

    LTE用户文档 (如有不当的地方,欢迎指正!) 17 Configure UE measurements   仿真中激活的用户测量配置取决于所选的 “consumers”,例如切换算法.用户可能需要添 ...

  10. 【转载】协同过滤 & Spark机器学习实战

    因为协同过滤内容比较多,就新开一篇文章啦~~ 聚类和线性回归的实战,可以看:http://www.cnblogs.com/charlesblc/p/6159187.html 协同过滤实战,仍然参考:h ...