Libgdx由浅入深
Libgdx从零开始, 由浅入深,一步步教你怎么使用Libgdx框架开发游戏。
吴佳峻
从事开发已有7年多,从事过手机单机游戏,大型手机网游开发,现专攻Android开发,曾在著名电商平台做Android架构师,带领团队,始终奉行开源至上,乐于分享,助人为乐,希望有共同爱好的it界人士交流指教~
展开
-
Libgdx专题系列: UI篇 TWL&Skin&TableLayout
游戏都少不了UI界面,现在我们来看看在Libgdx中,需要怎么做?TWL TWL是一个基于Opengl的图形用户接口, 它提供Label,button,tables 等许多控件的标准, 可以编辑控件的样式,他提供一个可以可视化编辑的工具,可以很方便的使用。TWL Themer Editor 官网地址 http://twl.l33tlabs.org/原创 2014-01-23 16:41:06 · 5643 阅读 · 1 评论 -
Libgdx专题系列:实例篇 打飞机
最近打飞机游戏比较火, 但是这个游戏本身的确没啥好说的, 比较简单, 火的原因可能跟微信平台有关吧,也许还有他本身的意思。 哈哈。但是对于使用Libgdx练手,算是个好的例子了,四五天时间基本上可以搞定了,这里帖出来自己制作的过程 , 对于新手来说也算是个帮助。 先上截图看看效果吧声明:以上游戏中用到的图片资源来自于网络,如果冒犯,请告诉我,我会替换掉, 不会用于商用原创 2013-12-26 11:47:36 · 14348 阅读 · 26 评论 -
Libgdx专题系列:物理引擎篇 Box2D
Box2D的是一个物理引擎库。他是一个用于2D的最流行的物理引擎库中的一个,被用到了许多语言,各种引擎中,其中就包括咱们使用的这个Libgdx。Libgdx中的Box2D实现了对于C++引擎的java包装,所以参考文档也可以直接使用C++版本的,official Box2D manual (PDF)想获得更多的信息可以到Box2D的官网,box2d.org 获得信息。这里我找到一个原创 2013-12-13 16:25:57 · 8561 阅读 · 2 评论 -
Libgdx专题系列:地图篇 斜45°地图
前面我们使用的都是矩形的图块, 然而在实际的使用中,经常会用到菱形的图块来进行地图绘制。 这里Libgdx也给我们提供了斜视角的地图绘制 IsometricTiledMapRenderer用法和OrthogonalTiledMapRenderer一样。 加载我们的地图文件TiledMap map = new TmxMapLoader().load("isometric_g原创 2013-12-11 11:10:36 · 4427 阅读 · 0 评论 -
Libgdx专题系列:地图篇 地图移动
地图的移动,其实实质是镜头的移动, 地图还是原地不动的, 只要镜头跟随角色移动,就可以达到地图移动的效果。 这里为了有好的模拟效果, 我添加了两个自定义的Button按钮,代表让主角左右移动,然后镜头跟随主角。 这里先看看我们的主角Player的实现首先它是一个演员继承Actorpublic class Player extends Actor空闲和移动两种状态原创 2013-12-11 10:39:29 · 5501 阅读 · 3 评论 -
Libgdx专题系列:镜头篇源码分析 Camera
在Opengl中,有许多矩阵变换,可以分为视角(Viewing),模型(Modeling)和投影(Projection)操作,这些操作可以有选择,平移,缩放,正侧投影,透视投影等。如果我们使用照相机拍照的过程做类比,可以更好的理解3D 坐标变换的过程。拍照时第一步是架起三角架并把相机的镜头指向需要拍摄的场景,对应到3D 变换为viewing transformation (平移或是选择原创 2013-12-10 17:13:10 · 6159 阅读 · 3 评论 -
Libgdx专题系列:地图篇 地图的绘制
本篇,我们将开启地图绘制部分, 包含垂直视角,45°视角地图的绘制,地图的移动,放缩等等。 Libgdx包含了许多关于地图绘制的Api,com.badlogic.gdx.maps在这个包中都可以找到。下面介绍一下有关地图方面的关键信息 Properties属性信息地图的,图层的和对象的属性都是放在一个叫做MapProperties的对象中, 他其实是一个hash表,以键值原创 2013-12-09 17:37:55 · 5411 阅读 · 6 评论 -
Libgdx专题系列:对象篇源码分析 Sprite
Sprite即精灵,原创 2013-12-06 17:10:20 · 3617 阅读 · 0 评论 -
Libgdx专题系列:对象篇源码分析 TextureRegion
TextureRegion即纹理区域, 他所使用的坐标系统是一个原点在左下角, x轴方向向右,y轴方向向下(这里和屏幕坐标不同)。在纹理上面的区域使用的是uv映射坐标来做的。 可能有些人对uv坐标映射不是太清楚,这里我画了张图其中float u, v;代表起点的uv坐标float u2, v2;代表终点的uv坐标下面我们来看看uv是怎么计算的?它里面有个se原创 2013-12-06 11:25:51 · 3891 阅读 · 0 评论 -
Libdgx专题系列:对象篇源码分析 SpriteBatch
在Libgdx中,使用比较多的就有SpriteBatch,字面的意思就是精灵组。文档的具体解释为:1.SpriteBatch用来绘制2D的带有纹理或纹理区域的矩形的。 他可以把绘制的一些命令捆绑起来,然后一起发给GPU来处理。2.在绘制之前首先要调用begin方法,去开启想对应的绘制状态,当绘制完了,需要调用end方法,来真正的绘制指定的内容。3.SpriteBatch操作的所有的原创 2013-12-05 19:08:33 · 3900 阅读 · 0 评论 -
Libgdx专题系列:对象篇 Game游戏控制中心 Screen 场景
这一部分,打算加上逻辑控制中心和场景, 为什么需要这个东西呢?首先我们的场景一般都不会是一个,还有开场的menu场景,暂停场景等其他场景,这样逻辑都写在FirstGame就显得很臃肿,要是实现的话, 我们应该会这样写, 一个基类场景,然后子类实现他,然后有一个切换场景的地,也就是游戏控制中心了, 典型的策略模式的路子。恩。 不错, 想到这些基本上ok了。 Libgdx也为我们简单实现了这部分的逻辑原创 2013-11-25 10:56:15 · 5345 阅读 · 2 评论 -
Libgdx专题系列:对象篇 Animation动画
是不是看着这个角色太单调了, 都不会动的,单单的一个图片,弄来弄去的, 好了, 这一部分呢, 我们将要添加动画效果, 让他动起来。代码如下: public class Player extends Actor{ private Pixmap mPixmap; private Texture mTexture; private TextureRegion [] k原创 2013-11-25 10:52:14 · 5288 阅读 · 0 评论 -
Libgdx专题系列:对象篇 Action动作
我的完美主义又来了,在我们的代码中,Player的动作实现,太麻烦了吧, 我还要计时,几秒到几秒执行什么动作, 而且还要我还原, 这我可忍受不了,能不能我规定一组动作, 然后你按照我的动作指令,慢慢去执行啊,好吧。 Libgdx已经为我们实现了这部分逻辑, 我们可以直接使用,Action类是他的超类,具体他的子类有几十个,有兴趣的可以看看。好吧。废话不多说了, 重构代码吧。public cla原创 2013-11-25 10:48:16 · 6234 阅读 · 2 评论 -
Libgdx专题系列:对象篇 Stage舞台 Actor演员
代码写到这,有完美主义的人,该说了, 这代码也太烂了吧, 啥东西都充斥在一个类中,什么SpriteBatch,什么OrthographicCamera,还有该死的变换等逻辑,要是把这些能分开就好了,有一个单独的东西能够处理SpriteBatch和OrthographicCamera,不需要我自己来处理, 然后他可以添加对象, 这个对象呢, 可以自己在他的类中做逻辑。 哈哈。别担心。Libgdx早就原创 2013-11-25 10:21:04 · 6204 阅读 · 1 评论 -
Libgdx专题系列:对象篇 Sprite精灵的使用
第三节:Sprite精灵的使用在上面虽然实现了对于TextureRegion的各种变换操作,但是明显感觉很繁琐, 还要自己单独写位移,放缩,旋转变量参数等, 那么libgdx有没有对这个进行封装的呢?答案是有的。 Sprite实现了这些逻辑,下面是使用精灵同样实现的代码。 public class FirstGame implements ApplicationListener{原创 2013-11-23 14:26:48 · 4811 阅读 · 0 评论 -
Libgdx专题系列:对象篇 纹理的旋转,放缩,位移
下面我们将重点介绍操作纹理。大部分情况下是这种情况, 不是使用整张图片而是部分区域,这个需要怎么操作呢?看下面的代码。下面的代码实现了纹理部分区域的旋转,放缩,和位移操作public class FirstGame implements ApplicationListener{ private Pixmap mPixmap; private Texture m原创 2013-11-23 14:23:52 · 4615 阅读 · 0 评论 -
Libgdx专题系列:对象篇 简单绘制
第一节:简单绘制游戏的绘制,无外乎文字、几何图形、图片的绘制,一切的架构和封装都是建立在这个基础上的,我们首先来看看这三种绘制在libgdx中怎么来去实现。完整代码如下: public class HelloGameActivity extends AndroidApplication{ @Override protected void onCreat原创 2013-11-23 14:19:44 · 4301 阅读 · 2 评论 -
Libgdx专题系列:序言
序言 首先欢迎大家来看这篇文章, 说明大家关注Libgdx,同样我也是, 以前听说过,没有使用过,最近比较关注他, 跨平台,opengl绘制, 封装了高效的物理引擎,粒子系统,代码结构也很清晰,优雅,的确是一个不可多得的好的游戏框架。我看也有不少人写了关于Libgdx的教程, 都非常好,让人非常容易入手。为什么还要写关于Libgdx的文章呢? 其实也是自己的一个成长过程原创 2013-11-23 14:12:32 · 2242 阅读 · 0 评论