首页 > 代码库 > 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包含了非常多的模块,这些模块为一个正常运转的游戏构建的每一步提供了非常好的服务。
  1. Input:提供了一个没有定义的输入模块,和对全部平台的解决方式。支持键盘、触摸屏、加速计、和鼠标。

  1. Graphics*:用硬件提供的OpenGL ES实现了在屏幕上绘制图片。
  1. Files:通过提供读写操作的方便的方法实现了抽象的文件操作,无论媒体文件。
  1. Audio:在全部平台上的声音录制和播放。
  1. NetWorking:提供了网络操作的方法,比方简单的HTTP get 和post请求。和TCP server/client 的socket通信。
以下的图标展示了在一个完整的游戏体系中的这些模块:
技术分享
技术分享
技术分享
技术分享

模块:

Input(输入)
输入模块使得在每个平台上的输入状态的轮询成为了可能。

它同意轮询每个按键。触摸屏。

和加速计的状态。

在桌面程序中,触摸屏被鼠标代替,而加速计则不可用。

它也提供了注冊输入处理器的方式来使用一个基于输入模块的事件。

以下的代码片段得到了在触摸事件发生时触摸的坐标: System.out.println("Input occurred at x=" + Gdx.input.getX() + ", y=" + Gdx.input.getY()); }

if (Gdx.input.isTouched()) {
以此类推。全部支持的输入方式都可以被支持并处理。

Graphics(图像)

图像模块抽象了跟GPU之间的通信而且提供了获得OpenGL ES 封装器的实例的方便的方法。

依据不同的硬件平台。封装器也有可能不可用。 图形模块也提供了生成Pixmaps和Texture的方法。 比如,以下的代码片段获得了一个OpenGL API1.0的实例: GL10 gl = Gdx.graphics.getGL10(); 这种方法会返回一个可以在屏幕上进行绘制的实例。在硬件配置不支持的情况下,则返回空。 以下的代码片段清空了屏幕而且将屏幕绘制成了红色: gl.glClearColor(0.1f,0.0f,0.0f,1); gl.glClear(GL10.GL_COLOR_BUFFER_BIT); 它总是返回指定API的指定实现。所以主应用不用去关注细节(即不用关注使用的平台),它会自己主动的在全部支持的平台上工作。

files(文件)

件模块提供了无关平台的操作文件的一般方式。它是的读写文件变得简单。

文件的写入会有一些局限性。这归因于相关平台的安全局限性。

文件模块最普遍的使用情况是载入游戏资源(纹理,声音文件)从全部平台的应用的子文件夹里面。它对向文件里写入最高分或者游戏状态也很实用。
以下的代码片段从$APP_DIR/assets/textures文件夹下创建了一个纹理:

Texture myTexture = new Texture(Gdx.files.internal("assets/texture/brick.png"));

Audio(音频)

声音模块使得音频文件的创建和播放变得很的简单。它也能够直接的訪问音频硬件。
它处理两种音频文件。Music和Sound。两种类型都支持wav,mp3,和ogg格式。
Sound实例可以被载入到内从其中而且可以被随时播放。

这是为了游戏中的音效可以被播放多次。比方爆炸声和枪击声。

Music实例则是从在硬盘或者sd卡上的文件的流。每次一个文件播放的时候,它都被处理成数据流交给音频设备。
以下的代码片段播放了一个sound文件,myMusicFile.mp3,反复播放,音量为二分之中的一个。

Music music = Gdx.audio.newMusic(Gdx.files.getFileHandle("data/myMusicFile.mp3", FileType.Internal));
music.setVolume(0.5f);
music.play();
music.setLooping(true);






libGDX 模块概览