`
king_tt
  • 浏览: 2123837 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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(粒子编辑器),Hierobitmap fontgenerator(文字生成工具),Texture packer(图片合并工具),TWL布局编辑器。

工具下载地址: libgdxjws



缺点

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)

libgdxofficial site(官方)

libgdx 框架系列教程(cnblogs)

libgdx 游戏引擎教程(apkbus)


box2d 代码托管(google code)

box2d official site(官方)


分享到:
评论

相关推荐

    climber:libgdx中的实验

    概述登山者是libgdx开发中的一项实验。 重点是具有过程平台的基于控制器的简单桌面游戏。设置和运行克隆存储库或下载并解压缩ZIP文件将项目导入到您首选的开发环境中并运行使用的工具IDE: 图形: 音效产生: 音效...

    libgdx-flavors:使用 Android 风格支持在所有受支持的 libGDX 平台上创建多个应用程序变体的模板构建布局

    概述这种骨架结构允许您使用 Android 风格机制( 描述)为所有支持的平台构建应用程序的变体。 例如,您可能有一个带有广告的免费应用程序和一个没有广告的付费应用程序。 使用此框架,您可以使用任一版本完成整个...

    level-generator:用于程序级生成的 libGDX 源代码

    用于程序级生成的 libGDX 源代码。 该项目提供了两个独立的关卡生成工具。 这些在一系列博客文章中进行了概述。 随着游戏开发项目的继续推进,我会偶尔尝试重新访问此代码以更新它并确保它继续运行。

    Android代码-自定义安卓波纹效果

    1.概述 通过不停绘制圆来模拟Android5.0 Ripple Effect (1)支持多重波纹。 (2)支持波纹生命周期监听。 (3)支持调整波纹颜色、速度、加速效果、形状。 2.用法 TLRipple.java:绘制单个波纹 这个类被TLRipples使用。 ...

    tablelayout, 基于表的Java UI工具箱布局.zip

    tablelayout, 基于表的Java UI工具箱布局 请使用 TableLayout讨论组的支持。概述TableLayout是一个轻量级的Java库,它使用逻辑 table 来设置UI小部件的位置和大小,类似于... TableLayout的核心是 UI,它支持 libgdx

    矮人滚动条

    概述 游戏和包装的结构 libGDX项目的结构由。 这些课程的市长可在core项目中找到。 该项目的主要类是类,该类由desctop项目实例化(有关详细信息,请参见libGDX文档)。 此类包含一些配置路径,初始化和设置屏幕,...

    Vector-Pinball:弹球游戏为Android

    有关代码布局的概述,请参见 。 在有一个非常实验性的表编辑器 分发该程序是希望它会有用,但是没有任何保证; 甚至没有对适销性或特定用途适用性的暗示保证。 有关更多详细信息,请参见GNU通用公共许可证。 ...

    Realistic-Ray-Tracer:照片逼真的蒙特卡罗路径追踪器

    光线追踪器使用蒙特卡洛积分的真实光线追踪...功能概述图形使用默认 libgdx 3d 着色器的稍微修改版本的基本 3d 渲染。 它利用了新的 libgdx 3D API。 3D粒子系统基于新的libgdx 3d粒子系统(1.2.1+版本,1.2.0不包含)

    基于Android的塔防游戏应用开发-设计报告.docx

    目录 目录 第1章 绪 论 1 1.1概述 1 1.2行业发展现状 1 1.3 研究的主要内容和前景 1 第2章 总体设计 3 2.1设计目的 3 2.2 设计方案 3 3章 详细设计 6 3.1 开发环境 6 3.2游戏引擎 6 3.2.1 libGDX 6 Color 6 Texture...

    Project_CSC_780:安卓游戏

    查看“ wiki 中的设计文档”部分以获得我们项目的概述。 Android 中的 2D 游戏(帮助添加它,将不胜感激) 不久前,我们已经开始为 Android 编写游戏。 由于我们没有足够的时间来完成它,我们认为到目前为止发布...

    ProjectGhost:Project Ghost是一款2D可缩放的在线多人游戏

    总体概述 Project Ghost是一款多人竞技场游戏。 目标很简单,您有3条生命,您必须使用选择的武器杀死对手,但有一个陷阱,您的敌人是看不见的,除非他们发射武器! 有5种武器; 冲击波,激光,Vortext,快速启动和...

    Never-Ending-Story-Android:Never Ending Story 安卓端游戏 [测试版本]

    Never-Ending-Story-Android概述这个项目是 Never Ending Story 游戏项目的测试版本,现在暂无法真正实现其功能。。目标这个项目是我的一个小目标,大概是10到13个月的小项目。因为最近发生了很多事,所以这个项目...

    Java采购管理信息系统源码-roboraider:一个我一直在研究的JRPG引擎……永远

    位图形样式,但由于libgdx作为主库而具有现代支持。 可以使用彩色精灵、背景、动画以及 CD 品质的音乐和声音。 用于创建新过渡、效果、管理器和实体的组件和 API。 特定功能 自上而下的正交瓷砖地图视图。 勇者斗...

Global site tag (gtag.js) - Google Analytics