libgdx概述
libgdx
是一个跨平台的2D/3D的游戏开发框架,由Java/C/C++语言编写而成,基于
Apache License 2.0
协议,对商业使用和非商业使用均免费,代码托管于
github
优点
1、 兼容性强
libgdx兼容大多数平台,采用标准JavaSE实现,
能运行在Mac、Linux、Windows等系统
,与Android平台(
Android1.5以上即可使用,Android2.1以上可满功率发挥
)。同时极强的兼容性为调试和开发提供了便利。你可以使用Android上面同样的代码在桌面PC上面编写,测试,调试你的应用(也就是说,你可以不需要打开Android模拟器,就可以调试用Libgdx引擎写的游戏应用),剥离了常见的Windows之间/ Linux应用程序和一个Android应用程序的区别。一般的开发过程是尽可能的在停留桌面PC上,同时周期性的检查你的当前代码是否仍然能在Android运行。
2、 高效性
Libgdx为了一个游戏开发框架,它主要是用Java写的,其中也参杂了一些C/C++代码,这些代码是为了处理一些对性能要求很高的操作,比如物理引擎或者音频处理。作为用户,你只需要关注Java端就可以了,它已经把所有的本地代码封装好了。相比于其他android游戏引擎,libgdx的效率优势十分明显。
3、 架构清晰
Libgdx由
audio、files、graphics、math、physics、scenes、utils
这些主要类库所组成,它们分别对应了Libgdx中的音频操作,文件读取,2D/3D渲染,Libgdx绘图相关运算,Box2D封装,2D/3D游戏组件,以及Libgdx内置工具类。
libgdx组织模块
游戏设计架构
4、 封装Box2D
Libgdx对于物理引擎的封装也是让人惊讶的。 它足够疯狂的使用jni封装了box2d的c++端,使得其运行效率比其他同级的物理引擎如jbox2d快不少。现在流行的几个包含物理引擎Android游戏引擎(如Andengine、Rokon等),几乎都在用libgdx。如果你的游戏(特别是针对Android平台的)准备使用物理引擎,请优先考虑Libgdx。
5、 工具丰富
Libgdx还拥有相当数量的开发工具。如果
Particle editor
(粒子编辑器),
Hiero bitmap font generator
(文字生成工具),
Texture packer
(图片合并工具),TWL布局编辑器。
工具下载地址:
libgdx jws
缺点
1、 效率差异
Libgdx也并不是十全十美的,它致力于提供一个统一的架构用于游戏开发工作,以保证在所有平台上相同的行为。可悲的是这个崇高的目标难以达到。最大的不同点在于桌面PC和Android设备在于Android设备通常比桌面PC要慢得多。这意味着你的应用在PC上面运行的极快,但在Android运行的就像蜗牛在爬。必须清楚很多能做的和不能做的规则,开发者应该遵守这些规则,为了保证即使在低端Android,应用都拥有良好的运行效果。
2、 图片资源限制
Libgdx以native方式自带图像解码器,通过其提供的Pixmap可以对指定图像进行像素级渲染操作,从而不依赖Android的Bitmap加载处理图像,不过目前只支持png、jpg、bmp三种图片格式。其次Libgdx要求在游戏中使用的图片宽与高皆为2的整数次幂,否则会产生一个Gdx异常并禁止加载行为(texture width and height must be powers of two)。
游戏框架概览
libgdx 作为游戏引擎,其框架主要包含输入,逻辑处理,输出三个部分
解释如下:
1) 输入,主要有用户的响应事件,如触屏(Touch),点击(Click),长按(Long Touch), 拖拽(Drag)等。
输入中的文件一般为图片,声音,视频等
2) 逻辑,主要有数学逻辑和物理逻辑,
libgdx对于物理上处理是Box2D的封装,
可以满足一般需求。
对于数学逻辑封装了一些常见的结构和少量算式,可以基于此开发自己需要的算法。
libgdx对于图像和声音等文件的处理比较好,可以直接使用。
3) 输出,一般是图片,声音,影像等,也有文件或者其他数据(比如网络的存储)
引擎框架,一般采用模块化结构,便于功能的开发与管理,libgdx游戏开发模块结构如下图:
Android 游戏引用(Application)——》 游戏内容(Game)——》各种场景画面切换(Screen)——》各种场景画面的舞台(Stage)——》舞台上的角色(Actor)
参考推荐:
libgdx 托管源码
(github)
libgdx wiki & issues
(google code)
libgdx official site
(官方)
libgdx 框架系列教程
(cnblogs)
libgdx 游戏引擎教程
(apkbus)
box2d 代码托管
(google code)
box2d official site
(官方)
原文: libgdx概述
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2012-12-05 21:38:21
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!
转载注明: libgdx概述 (米扑博客)