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-11-02 00:59:35

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

libGDX 模块概览

本文章翻译自libGDX官方wiki,.转载请注明出处:http://blog.csdn.net/kent_todo/article/details/37940595 libGDX官方网址:http://libgdx.badlogicgames.com/ libGDX源代码:https://github.com/libgdx/libgdx 介绍: libGDX包含了非常多的模块,这些模块为一个正常运转的游戏构建的每一步提供了非常好的服务. Input:提供了一个没有定义的输入模块,和对全部平台的

Dojo API中文 Dojo内容模块概览,初学者

官网:http://dojotoolkit.org/reference-guide/1.10/dojo/index.html#dojo-dojo的翻译 dojo 内容: dojo dojo/dojo dojo/_base Areas of Functionality dojo是dojo工具箱的基础包.有时被称为"核心",它包含了最重要的一般适用的软件包和模块.dojo包包含了许多功能,比如ajax.dom操作.类类型编程.事件.承诺.数据存储.拖放和国际化库. dojo/dojo 这是

itertools模块

itertools模块概览 +生成无限迭代器 count(start, [step]) #从start开始,步长为step的无限整数迭代器(step默认值为1) cycle(iterable) #不断循环iterable而得到的无限迭代器 repeat(object, [n]) #重复object对象n次生成的迭代器 (n默认值为无穷大) +处理输入序列得到新的迭代器 chain(*iterables)             #将多个序列串联 compress(data, selectors)

reactor官方文档译文(2)Reactor-core模块

You should never do your asynchronous work alone. — Jon Brisbin 完成Reactor 1后写到 You should never do your asynchronous work alone. — Stephane Maldini 完成Reactor 2后写到 名称解释:back pressure:背压.在交换机在阻止外来数据包发送到堵塞端口的时候可能会发生丢包.而背压就是考验交换机在这个时候避免丢包的能力.很多的交换机当发送或接收

Nodejs学习之net模块相关用法详解

net模块是同样是nodejs的核心模块.在http模块概览里提到,http.Server继承了net.Server,此外,http客户端与http服务端的通信均依赖于socket(net.Socket).也就是说,做node服务端编程,net基本是绕不开的一个模块.本文就和大家详细扒一扒Nodejs的net相关用法,希望对大家学习Nodejs 有所帮助吧.  从组成来看,net模块主要包含两部分,了解socket编程的同学应该比较熟悉了:  · net.Server:TCP server,内部

6、Libgdx文件处理

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

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

模块概览 net模块是同样是nodejs的核心模块.在http模块概览里提到,http.Server继承了net.Server,此外,http客户端与http服务端的通信均依赖于socket(net.Socket).也就是说,做node服务端编程,net基本是绕不开的一个模块. 从组成来看,net模块主要包含两部分,了解socket编程的同学应该比较熟悉了: net.Server:TCP server,内部通过socket来实现与客户端的通信. net.Socket:tcp/本地 socket的

pygame中模块说明

参考博客:https://blog.csdn.net/qq_27717921/article/details/53231762 pygame模块概览 1.display模块 功能:生成windows窗口 pygame.display.set_mode(resolution=(0,0),flags=0,depth=0) 返回一个特定大小和属性的surface对象,resolution可以控制生成windows窗口的大小,flags代表的是扩展选项,depath不推荐设置 flags标志位控制你想要

10GBASE-T SFP+电口模块

10GBASE-T是一种利用双绞线(超六类或以上)进行10G传输的以太网规范,与其他10G光模块比较,10GBASE-T电口光模块具有性能稳定.能够充分利用现有铜缆布线的长处. 10GBASE-T SFP+电口光模块概览 10GBASE-T SFP+电口光模块具有性能高.可靠性强等特点,主要用来在超六类或七类铜缆布线体系中完成10G以太网传输,它符合SFF-8431和SFF-8432 MSA标准,传输间隔能够达到30m. 此外,与SFP+高速线缆相比,10GBASE-T SFP+电口光模块至少能