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版权所有,如需转载,注明出处)

时间: 2024-09-20 06:21:13

4.2、Libgdx各个模块概览的相关文章

《libGDX移动游戏开发从入门到精通》一2.2 模块

2.2 模块 libGDX这个游戏引擎的有一个特点就是架构清晰.组成模块化.那么现在我们就来学习一下libGDX这个游戏都由哪些模块组成,这些模块分别对外提供什么功能. 2.2.1 libGDX模块组成的图示 libGDX由数个模块组成,它们分别为一个游戏的各个步骤提供了服务与支持.这些主要模块在一个游戏中的典型架构如图2.7所示. 由图2.7可以看出,libGDX主要由Input.Files.Graphics.Audio这几个模块组成,以及图2.7中没有显示出来的Net模块.它们分别对应了li

Nodejs基础:路径处理模块path总结

本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址. 模块概览 在nodejs中,path是个使用频率很高,但却让人又爱又恨的模块.部分因为文档说的不够清晰,部分因为接口的平台差异性. 将path的接口按照用途归类,仔细琢磨琢磨,也就没那么费解了. 获取路径/文件名/扩展名 获取路径:path.dirname(filepath) 获取文件名:path.basename(filepath) 获取扩展名:path.extname(filepath) 获取所在路径 例子

Nodejs进阶:核心模块net入门与实例讲解

本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址. 模块概览 net模块是同样是nodejs的核心模块.在http模块概览里提到,http.Server继承了net.Server,此外,http客户端与http服务端的通信均依赖于socket(net.Socket).也就是说,做node服务端编程,net基本是绕不开的一个模块. 从组成来看,net模块主要包含两部分,了解socket编程的同学应该比较熟悉了: net.Server:TCP server,内部通过

Nodejs基础:stream模块入门介绍与使用

本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 模块概览 nodejs的核心模块,基本上都是stream的的实例,比如process.stdout.http.clientRequest. 对于大部分的nodejs开发者来说,平常并不会直接用到stream模块,只需要了解stream的运行机制即可(非常重要). 而对于想要实现自定义stream实例的开发者来说,就得好好研究stream的扩展API了,比如gulp的内部实

Nodejs进阶:核心模块Buffer常用API使用总结

本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 模块概览 Buffer是node的核心模块,开发者可以利用它来处理二进制数据,比如文件流的读写.网络请求数据的处理等. Buffer的API非常多,本文仅挑选 比较常用/容易理解 的API进行讲解,包括Buffer实例的创建.比较.连接.拷贝.查找.遍历.类型转换.截取.编码转换等. 创建 new Buffer(array) Buffer.alloc(length) Bu

Nodejs进阶:核心模块https 之 如何优雅的访问12306

本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 模块概览 这个模块的重要性,基本不用强调了.在网络安全问题日益严峻的今天,网站采用HTTPS是个必然的趋势. 在nodejs中,提供了 https 这个模块来完成 HTTPS 相关功能.从官方文档来看,跟 http 模块用法非常相似. 本文主要包含两部分: 通过客户端.服务端的例子,对https模块进行入门讲解. 如何访问安全证书不受信任的网站.(以 12306 为例子)

《libGDX移动游戏开发从入门到精通》一2.3 运行环境的相关查询

2.3 运行环境的相关查询 我们在2.2节中分析学习了libGDX的模块组成及各个模块的功能.它们分别是Input.Graphics.Files.Audio.在这一节,我们学习一下Application这个接口提供了哪些方便的功能. 2.3.1 获取目前的运行环境 在实际开发的时候,常常需要根据不同的平台来进行一些不同的操作.如保存数据时,保存数据到Android的SD卡与保存数据到Desktop中有较大的差异.libGDX完全考虑到了这种需求,我们可以通过Applciation.getType

Node进阶:核心模块http简介

本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址. http模块概览 大多数nodejs开发者都是冲着开发web server的目的选择了nodejs.正如官网所展示的,借助http模块,可以几行代码就搞定一个超迷你的web server. 在nodejs中,http可以说是最核心的模块,同时也是比较复杂的一个模块.上手很简单,但一旦深入学习,不少初学者就会觉得头疼,不知从何入手. 本文先从一个简单的例子出发,引出http模块最核心的四个实例.看完本文,应该就能

6、Libgdx文件处理

(官网:www.libgdx.cn) 简介 Libgdx应用运行在四个不同的平台中:桌面系统(Windows,Linux,Mac OS X等等),Android,iOS和JavaScript或者WebGL.每个平台处理文件I/O有一些不同. Libgdx文件模块提供了以下操作文件功能: 从文件中读取 写入到文件 复制文件 移动文件 删除文件 遍历文件和目录 检测文件或目录是否存在 在我们深入了解Libgdx的文件模块之前,首先了解一下各个系统的差异. 各个平台文件系统 这里我们简单的了解一下Li