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的模块:

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

上一篇:JavaScript--机选双色球


下一篇:Nikto是一款Web安全扫描工具,可以扫描指定主机的web类型,主机名,特定目录,cookie,特定CGI漏洞,XSS漏洞,SQL注入漏洞等,非常强大滴说。。。