4.2、Libgdx各个模块概览
(原文:http://www.libgdx.cn/topic/34/4-2-libgdx%E5%90%84%E4%B8%AA%E6%A8%A1%E5%9D%97%E6%A6%82%E8%A7%88)
介绍
libgdx集成了几个模块为构建典型的游戏架构每一步提供服务。
Input:提供了针对所有平台统一的模型和handler。支持键盘,触摸屏,传感器和鼠标。
Graphics:通过硬件提供的OpenGL ES接口实现对图像在屏幕的绘制。
Files:提供了简单的方法进行读写操作。支持所有平台。
Audio:声音的录制和回放。支持所有平台。
Networking:提供了进行网络操作的方法。比如,简单的HTTP get 和post 请求和TCP 服务器/客户端 socket 通信。
通常一个简单的游戏架构可以通过如下实例调用libgdx的模块:

接下来介绍各个模块最常用的功能。
模块
Input
Input模块检测每个平台上的不同的输入状态。它允许检测键盘,触摸屏和传感器的状态。在桌面环境下(windows或Linux等),触摸屏被鼠标替代,当然传感器也不能使用。
它同样提供了基于Input模型的注册进行输入处理的方法,以此可以进行事件驱动。
接下来的代码用户检测用户是否发生触摸事件(桌面平台是鼠标点击),如果是则获取当前坐标:
if (Gdx.input.isTouched()) {
System.out.println("Input occurred at x=" + Gdx.input.getX() + ", y=" + Gdx.input.getY());
}
Graphics
Graphics模块对于GPU的通信进行抽象,提供了简单的方法来获取OpenGL ES封装的实例。
这些功能可以在有些平台不能使用。
Graphics模块同样提供了生成Pixmaps 和 Textures 的方法。
比如,通过如下方法获取OpenGL API 2.0实例:
GL20 gl = Gdx.graphics.getGL20 ()http://Gdx.graphics.getGL20GL20 ();
这个方法返回一个实例,该实例可以绘制到屏幕上。如果设备不支持OpenGL ES 2.0,将返回null。
接下来的代码将进行清屏操作,并将屏幕绘制成红色:
gl.glClearColor(0.1f, 0.0f, 0.0f, 1);
gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
所有的这些操作通过接口实现,无须关心某个平台是不是支持这个功能。
支持的OpenGL API版本:
事实上,libgdx已经放弃了对OpenGL API 1.0的支持,这在官方英文wiki中没有说明。
现在只支持OpenGL API 2.0和OpenGL API 3.0。
Files
Files模块通过统一的API对文件进行访问,与平台无关。这使得读写文件更加简单。因为平台的安全原因,文件写操作会面临一定的限制。
Files模块最常用的功能就是载入游戏资源(图片和声音),写入游戏得分和游戏状态。
接下来展示如何通项目/assets/textures目录获取一个Texture:
Texture myTexture = new Texture(Gdx.files.internal(“assets/texture/brick.png”));
Audio
Audio用于创建和回放声音,特别是简单的声音。同时可以通过API直接访问声音硬件设备。
包含两种声音文件,音乐和音效。支持WAV,MP3 和 OGG 三种格式。
音效可以被载入内存,在任何时候都可以回放。通常播放时长较短,被多次使用。比如爆炸声和枪声。
音乐是指放置在SD卡或其它存储设备上的文件。播放时长较长。示例代码如下:
Music music = Gdx.audio.newMusic(Gdx.files.getFileHandle("data/myMusicFile.mp3", fileType.Internal));
music.setVolume(0.5f);
music.play();
music.setLooping(true);
(www.libgdx.cn版权所有,如需转载,注明出处)
4.2、Libgdx各个模块概览的更多相关文章
- Libgdx 开发指南(1.2) 应用框架——模块概览
模块概览 引言 LibGDX由一些为一个典型游戏架构中的各个步骤提供服务的模块组成. Input:为所有平台提供一致的输入模型与处理器.支持键盘.触屏.加速度传感器与鼠标. Graphics:使用硬件 ...
- 4.2、Libgdx每个模块概述
(原版的:http://www.libgdx.cn/topic/34/4-2-libgdx%E5%90%84%E4%B8%AA%E6%A8%A1%E5%9D%97%E6%A6%82%E8%A7%88) ...
- libGDX 模块概览
本文章翻译自libGDX官方wiki,.转载请注明出处:http://blog.csdn.net/kent_todo/article/details/37940595 libGDX官方网址:http: ...
- Dojo API中文 Dojo内容模块概览,初学者
官网:http://dojotoolkit.org/reference-guide/1.10/dojo/index.html#dojo-dojo的翻译 dojo 内容: dojo dojo/dojo ...
- Libgdx 开发指南——目录
本系列文档选译自libgdx github项目 wiki : https://github.com/libgdx/libgdx/wiki 由于关于Libgdx的中文文档非常稀缺,因此在这里对官方Wik ...
- 什么是英特尔® Edison 模块?
英特尔® Edison 模块 是一种 SD 卡大小的微型计算芯片,专为构建物联网 (IoT) 和可穿戴计算产品而设计. Edison 模块内含一个高速的双核处理单元.集成 Wi-Fi*.蓝牙* 低能耗 ...
- nodejs net模块
net模块是同样是nodejs的核心模块.在http模块概览里提到,http.Server继承了net.Server,此外,http客户端与http服务端的通信均依赖于socket(net.Socke ...
- Nodejs进阶:核心模块https 之 如何优雅的访问12306
本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 模块概览 这个模块的重要性,基本不用强调了.在网络安全问题日益严 ...
- Nodejs进阶:核心模块net入门与实例讲解
模块概览 net模块是同样是nodejs的核心模块.在http模块概览里提到,http.Server继承了net.Server,此外,http客户端与http服务端的通信均依赖于socket(net. ...
随机推荐
- ABP文档笔记 - 通知
基础概念 两种通知发送方式 直接发送给目标用户 用户订阅某类通知,发送这类通知时直接分发给它们. 两种通知类型 一般通知:任意的通知类型 "如果一个用户发送一个好友请求,那么通知我" ...
- Cloudera: Start Impala service by cloudera manager in docker quickstart image
How to start Impala service in docker quickstart image docker run --hostname=quickstart.cloudera --p ...
- Gradle 1.12用户指南翻译——第46章. Java 库发布插件
本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- Redis之(七)主从同步与集群管理
8.1 主从同步原理 像MySQL一样,Redis是支持主从同步的,而且也支持一主多从以及多级从结构. 主从结构,一是为了纯粹的冗余备份,二是为了提升读性能,比如很消耗性能的SORT就可以由从服务器来 ...
- logistic分类
对Logistic回归模型,个人做的一些总结: 公式就不套用了,教材上面基本都有而且详细.logistic回归用图形化形式描述如下: logistic回归是一种简单高效的分类模型,它不仅可以通过学习来 ...
- java泛型总结(类型擦除、伪泛型、陷阱)
JDK1.5开始实现了对泛型的支持,但是java对泛型支持的底层实现采用的是类型擦除的方式,这是一种伪泛型.这种实现方式虽然可用但有其缺陷. <Thinking in Java>的作者 B ...
- Java命名和目录接口——JNDI
JNDI即Java命名和目录接口(JavaNaming and Directory Interface),它属于J2EE规范范畴,是J2EE的核心技术之一,提供了一组接口.类和关于命名空间的概念.JD ...
- SQL Server 索引维护(1)——系统常见的索引问题
前言: 在很多系统中,比如本人目前管理的数据库,索引经常被滥用,甚至使用DTA(数据库引擎优化顾问)来成批创建索引(DTA目前个人认为它的真正用处应该是在发现缺失的统计信息,在以前的项目中,用过一次D ...
- Cocos2D中节点Z序的计算规则
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交 ...
- Gradle 的Daemon配置
最近升级到Android 2.2.2之后,运行之前的项目特别卡,基本上2分钟,好的时候1分半,查询了Android官网的说明说daemon能够加快编译.于是我也尝试开启Daemon. 在Windows ...