(原文: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各个模块概览的更多相关文章

  1. Libgdx 开发指南(1.2) 应用框架——模块概览

    模块概览 引言 LibGDX由一些为一个典型游戏架构中的各个步骤提供服务的模块组成. Input:为所有平台提供一致的输入模型与处理器.支持键盘.触屏.加速度传感器与鼠标. Graphics:使用硬件 ...

  2. 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) ...

  3. libGDX 模块概览

    本文章翻译自libGDX官方wiki,.转载请注明出处:http://blog.csdn.net/kent_todo/article/details/37940595 libGDX官方网址:http: ...

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

    官网:http://dojotoolkit.org/reference-guide/1.10/dojo/index.html#dojo-dojo的翻译 dojo 内容: dojo dojo/dojo ...

  5. Libgdx 开发指南——目录

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

  6. 什么是英特尔® Edison 模块?

    英特尔® Edison 模块 是一种 SD 卡大小的微型计算芯片,专为构建物联网 (IoT) 和可穿戴计算产品而设计. Edison 模块内含一个高速的双核处理单元.集成 Wi-Fi*.蓝牙* 低能耗 ...

  7. nodejs net模块

    net模块是同样是nodejs的核心模块.在http模块概览里提到,http.Server继承了net.Server,此外,http客户端与http服务端的通信均依赖于socket(net.Socke ...

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

    本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 模块概览 这个模块的重要性,基本不用强调了.在网络安全问题日益严 ...

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

    模块概览 net模块是同样是nodejs的核心模块.在http模块概览里提到,http.Server继承了net.Server,此外,http客户端与http服务端的通信均依赖于socket(net. ...

随机推荐

  1. Node.js TLS/SSL

    Stability: 3 - Stable 可以使用 require('tls') 来访问这个模块. tls 模块 使用 OpenSSL 来提供传输层(Transport Layer)安全性和(或)安 ...

  2. sublime snippet 示例

    <snippet> <content><![CDATA[local ${1:M} = {} function ${1:M}.new(cls, self) self = s ...

  3. J2EE进阶(十九)FileNotFoundException: http://hibernate.org/dtd/hibernate-mapping-3.0.dtd

    J2EE进阶(十九)Nested exception: java.io.FileNotFoundException: http://hibernate.org/dtd/hibernate-mappin ...

  4. Ajax PHP JavaScript MySQL实现简易的无刷新在线聊天室

    思路 消息显示区 发消息 板块 消息显示 消息发送 优化 显示非重复性的数据 优化显示 加上滚动条 每次都显示最新消息 完整代码 前端代码 数据库表结构 服务器端代码 总结与展望 总结 展望 为更好的 ...

  5. 国内外主流BI工具介绍和点评

    商业智能的应用在国外已广为普及,并且开始不断探索大数据和云技术.而国内,商业智能BI工具在这几年才开始慢慢被接受,企业开始有意识地建立一体化数据分析平台,为经营决策提供分析. 从国内企业使用情况来看, ...

  6. 【BAT经典算法面试题系列】求和为n的连续正整数

    马上就要到9月份了,意味着一年一度的秋招就要开始了,相信不论是正在实习的童鞋还是马上就要找工作的童鞋,BAT无疑是国内的"明星企业",是每个学计算机的小伙伴们心之向往的企业,但是呢 ...

  7. java类加载器——ClassLoader

    Java的设计初衷是主要面向嵌入式领域,对于自定义的一些类,考虑使用依需求加载原则,即在程序使用到时才加载类,节省内存消耗,这时即可通过类加载器来动态加载. 如果你平时只是做web开发,那应该很少会跟 ...

  8. SQL基本函数

    字符型函数 函数名称 描述 LOWER 将特定的字符串转化为小写,只影响字母字符串. UPPER 将整个字符串转换成大写,只影响字母字符串. INITCAP 将字符串中每一个单词的第一个字母转换为大写 ...

  9. Eclipse中设置VM参数

    eclipse.ini -Xms256m //设置堆最小值 -Xmx1024m //设置堆最大值 Eclipse 做JVM 的分析时,需要动态设置JVM的参数来进行各种测试, 可以在下图地方进行设置 ...

  10. 指令汇B新闻客户端开发(六) 浅谈屏幕适配解决方案

    屏幕适配的问题,我相信很多大牛的经验远比我丰富,在此就简单的分享一下我所做的的屏幕适配方案,当然我说的是安卓方面的啦,嘿嘿,屏幕适配我们一般用1280*720的屏幕作为我们的主流开发屏,当然现在And ...