架构理念:[简单][高效][可依赖] 管理理念:[价值][勇气][专注]

精通libGDX游戏开发-RPG实战-欢迎来到RPG的世界

 

欢迎来到RPG的世界

本章我会快速的使用tiled这样的瓷砖地图工具,来带领大家创造所设想的世界。

创建并编辑瓷砖地图

瓷砖地图(tile-based map)是广泛应用于各种游戏类型的地图格式,libGDX支持它并实现了动态瓷砖效果(比如流动的海水),基于资源利用的角度考虑,瓷砖地图也是rpg游戏的首选地图格式。

首先我们需要瓷砖地图编辑器作为我们的第一把斧子。虽然有许多不同类型的瓷砖编辑器,但主要常用的就两个:

• Tiled: 这是一个免费的持续维护的tile-based编辑器. 我在项目里用这个.

下载地址 http://www.mapeditor.org/download.html

• Tide: 这个是用Microsoft XNA库建的免费编辑器. 它的目标平台是Windows, Xbox 360和Windows Phone 7.

下载地址 http://tide.codeplex.com/releases.

图一显示了我们创建的雅卡港的效果图

我们的故事将全部发生在这个港口,这个图很大,为了展示全景,这里进行了缩小显示:

 

雅卡港的全景图

雅卡港中间有个2层的旅馆,我们将让室内故事在这里发生,旅馆第一层的效果图:

 

旅馆一层

然后是旅馆第二层的效果图,在这里我们会和妹子有亲密接触:

 

旅馆二层

编辑地图的过程

正如之前所说,这个游戏的资源全部来自于《圣剑英雄传》,所以这里对素材的处理过程没有讲,这完全是个体力活,在我开源的git都有。这里仅仅展示一下编辑器在编辑地图完成时的情景。

加载贴图和瓷砖地图,实现资源管理

大家直接去我的工程去git源码看:

https://github.com/Mignet/Inspiration/tree/v1.0

实现相机并在渲染中显示地图

我将通俗的讲一讲libGDX中与渲染相关的概念:

 

该图来自于网络

• Camera (1): 

摄像机:相比拍摄电影的摄像机,libGDX中的Camera更类似于一个针孔照相机。拍电影的摄像机是通过凸透镜聚焦光线将图像映射到感光介质上,形成可播放的影片。而针孔照相机是一个简单的不透光的盒子,没有镜头。这个相机允许光通过一个小洞,一个光圈或针孔,投射图像到另一边。图中展示的相机是OrthographicCamera (也称为正交或平行相机),它通过正交投影来表示在二维空间中的三维对象。

• Near clipping plane (2): 

近裁剪平面:这是最靠近摄像机的平面。在摄像机视角中,靠近这个平面的对象将比远离它的要大。在正交摄像机中,无论你怎么调整对象和正交投影相机的距离,对象将显现相同的大小。

• Far clipping plane (3): 

远裁剪平面:这是最远离摄像机的平面。在摄像机视角中,靠近这个平面的对象将比远离它的要小。在正交摄像机中,对象将显现相同的大小,无论你怎么调整对象和正交投影相机的距离。

• View frustum (4): 

视锥体:这是一个由远近裁剪平面包裹的长方锥体。任何在这个体积之内,包括部分相交的对象,将渲染到屏幕上。这个体积以外的其他所有东东将不会呈现。这也被称为裁剪。裁剪有一个z顺序(深度),方向是从远裁剪平面到近裁剪平面。

• Orthographic projection of a sprite (5): 

精灵的正交投影:一个平面2D的图像代表的精灵,在渲染时的样子

• Viewport (6): 

视口:这是一个2d矩形区域,用于投射3d屏幕相对于摄像机的坐标。在LibGDX中,视口宽度和高度的原点定位在中间位置。图中显示的是宽高10个单位y轴向上的视口。我们可以看到相应的位置值变化取决于我们正方向。

• Coordinate system (7): 

坐标系:LibGDX的坐标系是左下,这意味着原点坐标点(0,0)位于左下角的角落与y轴向上。

• Map screen (8): 

地图屏幕:这是我们用正交地图渲染类OrthogonalTiledMapRenderer渲染到屏幕上的瓷砖(TMX格式)地图的样子。

第一章先到这里。

posted @ 2017-04-17 14:15  文和-Mignet  阅读(1600)  评论(2编辑  收藏  举报