zoukankan      html  css  js  c++  java
  • 精通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格式)地图的样子。

    第一章先到这里。

  • 相关阅读:
    15. DML, DDL, LOGON 触发器
    5. 跟踪标记 (Trace Flag) 834, 845 对内存页行为的影响
    4. 跟踪标记 (Trace Flag) 610 对索引组织表(IOT)最小化日志
    14. 类似正则表达式的字符处理问题
    01. SELECT显示和PRINT打印超长的字符
    3. 跟踪标记 (Trace Flag) 1204, 1222 抓取死锁信息
    2. 跟踪标记 (Trace Flag) 3604, 3605 输出DBCC命令结果
    1. 跟踪标记 (Trace Flag) 1117, 1118 文件增长及空间分配方式
    0. 跟踪标记 (Trace Flag) 简介
    SpringBoot + Redis + Shiro 实现权限管理(转)
  • 原文地址:https://www.cnblogs.com/mignet/p/ligbdx_rpg_01.html
Copyright © 2011-2022 走看看