本文章翻译自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 服务器/客户端 的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);