简介
Libgdx 是一个跨平台的游戏对象开发框架。目前支持的开发平台有:Windows, Linux, Mac OS X, Android, iOS 和 HTML5。
Libgdx 允许一次编码无需修改即可发布到多个平台。与其等待最新的修改被布置至设备或者编译为HTML5语言,你可以在桌面环境开发你的应用,主要受益于一个极快的迭代周期。你可以使用Java系列的所有工具用以开发。
Libgdx 使你可以尽可能地深入底层,它允许直接访问文件系统,输入设备,音频设备,通过统一的OpenGL ES 1.x 和 2.0接口来访问OpenGL。
在这些底层设备之上,我们建立了一组强大的API帮助你完成普通的游戏开发任务,例如:画面和文本的渲染,构建用户界面,播放声音效果和音乐流,线性代数与三角函数计算,解析JSON和XML等等。
必要时,Libgdx 抛开Java转而使用本地代码以获取尽可能好的性能。所以的这些功能都隐含在Java API中,因此你不用担心全平台的本地代码交叉编译。Libgdx的许多代码都在解决已知的平台问题,所以你不必自己处理。
Libgdx的目标是成为一个框架而不仅仅是引擎,尽管我们也承认根本没有一劳永逸的解决方案。然而,我们提供给你强大的抽象类让你自己选择怎样编写你的游戏或应用。
站在巨人的肩膀上
Libgdx使用了大量的第三方库来提供其功能:
目标与特点
Libgdx 是一个Java框架,提供跨平台API用以游戏或者实时应用开发。它有以下特点:
概述
- 跨平台开发: Windows, Linux, OSX, iOS, Android 和HTML5((32- 和 64-bit 可用).
- 多后台,基于 Jogl, LWJGL, Angle (NVIDIA 3D Vision), Android APIs, iOS APIs 和 WebGL/HTML5 APIs.
- 在桌面上编写和测试代码, 无缝部署至 Android, iOS, 纯 Javascript, Applets, Webstart 或简单的桌面应用.
图形
- 在所有平台使用 OpenGL ES 1.0, 1.1 和 2.0 渲染.
- 通过自定义JNI绑定在Android2.0及以上版本支持 OpenGL ES 2.0.
- 底层:
- 顶点数组
- 顶点缓冲对象
- 纹理
- 纹理地图
- 同时为固定和可编码的管道提供易用灵活的网格类
- 帧缓冲对象
- 描影
- 即时模式渲染类(用以调试glBegin()/glEnd())
- 自动处理OpenGL上下文缺失 (纹理和 VBO游戏)
- 高级 2D:
- 批处理和缓存画面渲染
- 位图字体
- 粒子系统
- TMX 瓷砖地图渲染
- 基于位图操作为CPU自定义C 2D图形库
- 全面的2D场景图与补间框架
- 高级 3D (正在编写):
- OBJ和MD5模型装载器
- 关键帧骨骼动画
- 正投影与透视相机
- .. 待添加 ..
音频
- 流媒体音乐和音效播放,格式:WAV, MP3 and OGG
- 通过JNI桥接至 KissFFT 的快速傅里叶变换。
- 通过JNI桥接至Tremor and libmpg123 的OGG和MP3音频解码。 (libmpg123 因为许可证的问题目前已不使用)
- 直接的接口用以音频设备播放与录制。
文件 I/O
- 统一的抽象层,包括 Android资源,类路径资源和普通文件系统.
- 易存储的小数据可存储至优先选项(Preferences)
输入
- 轮询和基于事件的触屏和鼠键访问机制.
- 轮询访问指南针和加速度计
- 振动器支持 (yeah...)
- 远程输入事件处理允许你将Android手机连接至桌面应用
物理系统
- 完整的 box2d JNI封装.
- 此封装非常优秀,其他所有的Android游戏框架和引擎都在使用。
数学
- 2D,3D线性代数向量和矩阵类
- 4元数
- Frustum with culling support
- 边界形状
- 交集重叠测试
- Catmull-Rom 曲线
- 任意平面多边形Ear裁剪
实用
工具与扩展
- 粒子编辑器
- Hiero点阵字形发生器
- 纹理打包器
- 主题化的 Widget 库 支持
- Awesomium JNI 桥 (仅支持Windows 32-bit)
优化
- 对Dalvik虚拟机的需求量身定做的最佳实践准则
- 运行时无临时对象分配 (除了一些文档部分)
- 关键部分的本地代码实现
- 开放-关闭 Dalvik/Harmony bug的工作
Libgdx是什么
一个高性能,跨平台的引擎和游戏开发基础框架。作为一个框架,我们把重点放在建造坚实的基础,而不是实现最新最大的游戏引擎架构。Libdgx提供所有的灵活性来帮助你而不是让你使用严格的方法。
Libgdx不是什么
一个除了厨房水槽之外几乎包括了所有东西的游戏引擎.
(本想逐章翻译,无奈实在没多少时间,这里做一个简介,下节开始动手实践)