本文章翻译自libGDX官方wiki,。转载请注明出处:http://blog.csdn.net/kent_todo/article/details/37940595
libGDX官方网址:http://libgdx.badlogicgames.com/
libGDX源代码:https://github.com/libgdx/libgdx
介绍:
libGDX包含了非常多的模块,这些模块为一个正常运转的游戏构建的每一步提供了非常好的服务。
- Input:提供了一个没有定义的输入模块,和对全部平台的解决方式。支持键盘、触摸屏、加速计、和鼠标。
- Graphics*:用硬件提供的OpenGL ES实现了在屏幕上绘制图片。
- Files:通过提供读写操作的方便的方法实现了抽象的文件操作,无论媒体文件。
- Audio:在全部平台上的声音录制和播放。
以下的图标展示了在一个完整的游戏体系中的这些模块:
- 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);