简介

开始做游戏之后,我们免不了得先画一个游戏地图出来,可是这个地图怎么做呢。libGDX官方也给我们推荐了一个2D地图制作工具——Tiled

贴上官网

Tiled | Flexible level editorFlexible level editorhttps://www.mapeditor.org/

入门

下载完成后,我们首先打开官方为我们准备好的地图文件

文件 -> 打开文件或项目 ->  Tiled安装目录/examples -> desert.tsx

然后用同样的方式打开 desert.tmx

TMX和TSX是Tiled独有的文件格式,.TMX是地图文件,.TSX是瓦片集

打开之后我们可以看到官方准备好的一张沙漠地图和沙漠素材集

界面

首先我们来介绍一下这个界面有些什么信息

①界面右下角可以看到地形集和图块集,我们在这里可以选择相应的素材,选中之后放到地图上

②界面右上角工作栏可以选择查看迷你地图、对象或是图层。

  • 迷你地图层可以用来查看并快速拖拽到地图上的任意一个角落
  • 对象层主要放一些NPC、宝箱、主角、金币等,可以让对象移动、显示或是隐藏
  • 图层这个用过PS的朋友们应该很熟悉了,越是在上级的图层优先级就越高,简单来说就是上层的图片会把下层的图片遮挡,一般用于放置不会移动的图像

③这里是工具栏,左边部分主要是文件操作,新建、打开、保存等,中间部分是可以用在素材上的操作,默认工具是图章刷,往后是地形刷、填充、形状填充、橡皮擦等等工具

④这里可以看到当前地图的属性,宽度和高度是代表整张地图有多少个格子,图块宽度和图块高度是每一个格子的宽度和长度,地图的长度就是(40*32)*(40*32)=1280*1280

新建一张地图

文件 -> 创建新地图

在这我们可以根据自己的需求确定地图的大小

地图的基本分类  
1.正常(俯视图或者说是平视图)可以用于RPG游戏地图,也可考虑用于类似超级玛丽一样的横版过关游戏。 
2.45度(地图顺时针旋转45度)可用于RPG游戏地图,也可以考虑战棋类游戏 
3.45度交错(地图呈现为四边形边界位置使用1/2的三角形地图块呈现) 
4.六角形交错(Hexagonal Staggered)展现方式类似于45度交错地图

此外在创建地图的时候还有2个重要的参数 
图层保存格式:XML、Base64(无压缩、gzip、zlib)、CSV 
地图坐标方向:默认是Right Down(右下)也就是说左上角为顶点向右为X轴,向下为Y轴

点击OK之后我们就创建好了一张新的地图,左键选中沙漠地块,左键点击填充,左键点击空白地图,我们就把地基铺好了

然后根据自己的需要添加一些素材

做好地图之后,按下保存会提示你把地图文件保存到某个位置,然后就可以在项目中使用这张地图了!

项目中使用地图

新建一个libGDX项目,把地图资源放入assets中,包含tmx和tsx还有图片格式的文件

建议这里打开.tmx和.tsx文件,把<image source>中的图片路径改为相对路径

"tmw_desert_spacing.png",否则会提示文件未找到错误File not found

然后就可以在core的游戏类中载入地图了

package com.tdsss.game;import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.maps.tiled.TiledMap;
import com.badlogic.gdx.maps.tiled.TmxMapLoader;
import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer;
import com.badlogic.gdx.utils.ScreenUtils;public class demo4 extends ApplicationAdapter{private TiledMap map;//地图private TmxMapLoader mapLoader;//地图加载器private OrthographicCamera camera;//相机private OrthogonalTiledMapRenderer renderer;//相机渲染
@Overridepublic void create() {//加载地图mapLoader = new TmxMapLoader();map = mapLoader.load("map/desertdemo.tmx");renderer = new OrthogonalTiledMapRenderer(map,1f);camera = new OrthographicCamera();camera.setToOrtho(false,1280,1280);camera.update();}@Overridepublic void render() {ScreenUtils.clear(225f,225f,225f,0.4f);renderer.setView(camera);renderer.render();}
}

在桌面入口类设置窗口大小

package com.tdsss.game;import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;// Please note that on macOS your application needs to be started with the -XstartOnFirstThread JVM argument
public class DesktopLauncher {public static void main (String[] arg) {Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration();config.setWindowedMode(1280,920);config.setForegroundFPS(60);config.setTitle("demo4");new Lwjgl3Application(new demo4(), config);}
}

设置完成后点击运行,地图就显示出来啦!

libGDX学习之路02:利用Tiled绘制游戏地图相关推荐

  1. Docker学习之路02:阿里云镜像加速器

    阿里云镜像加速器 Docker学习路线传送门: Docker学习之路01:Docker的安装 Docker学习之路02:阿里云镜像加速器 Docker学习之路03:Docker的常用命令 Docker ...

  2. Spring Boot的学习之路(02):和你一起阅读Spring Boot官网

    官网是我们学习的第一手资料,我们不能忽视它.却往往因为是英文版的,我们选择了逃避它,打开了又关闭. 我们平常开发学习中,很少去官网上看.也许学完以后,我们连官网长什么样子,都不是很清楚.所以,我们在开 ...

  3. python绘制词云图转换图_(数据科学学习手札71)利用Python绘制词云图

    1 简介 词云图是文本挖掘中用来表征词频的数据可视化图像,通过它可以很直观地展现文本数据中地高频词: 图1 词云图示例 在Python中有很多可视化框架可以用来制作词云图,如pyecharts,但这些 ...

  4. Quartz.Net 学习之路02 初探Quartz.Net

    第二讲:简单的实例,看看Quartz.Net强在哪里? 直接上代码,代码里有注释: using System;using Quartz; using Quartz.Impl;namespace Les ...

  5. 我的HTML学习之路02

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) HTML学习 HTML标题 HTML水平线 HTML注释 H ...

  6. libGDX学习之路01(续):把libGDX项目部署到iOS

    前言 libGDX是一个非常强大的框架,我在写下libGDX入门那篇文章的时候,没能成功解决把libGDX项目部署到iOS设备上并运行,在我查了很多资料和反复实验中,我总结了一些经验,希望能帮到大家. ...

  7. Git的学习之路02 Git的工作流程、工作区、暂存区、版本库及创建版本库

    Git的一般工作流程如下: 克隆 Git 资源作为工作目录. 在克隆的资源上添加或修改文件. 如果其他人修改了,你可以更新资源. 在提交前查看修改. 提交修改. 在修改完成后,如果发现错误,可以撤回提 ...

  8. libGDX学习之路04:Input Handling输入处理

    简介 因为libGDX的跨屏台性,我们需要兼顾很多平台的输入方式.比如说电脑桌面端和网页端是用键盘(Keyboard)和鼠标(Mouse)来输入,而Android端是用屏幕来点触的.libGDX对这些 ...

  9. QT3D学习之路02

    本章节用来记录我在学习QT3D的过程中遇到的一些不懂的3D相关,QT编程相关的词汇呀,概念呀什么的. 看到一条信息:QT 3D Studio 1.0在2017.11.30发布了,有空可以去搞搞 QT- ...

最新文章

  1. 度学习实践:如何使用Tensorflow实现快速风格迁移?
  2. python装饰器执行顺序_python unittest单元测试框架-3用例执行顺序、多级目录、装饰器、fixtures...
  3. 让开发自动化持续重构 --使用静态分析工具识别代码味道
  4. wxWidgets:窗口 ID
  5. python 爬取企业注册信息_python爬取企业名录
  6. find command基本使用
  7. linux调用ocx插件_Wordpress file manager插件任意文件上传
  8. 软能力那点事,你知多少
  9. java二次指数平滑法预测未来的值
  10. java操作浏览器_java selenium 操作浏览器实例
  11. MySQL使用SQL语句修改字段长度、字段名称
  12. 查找mysql.sock_找不到mysql.sock,我在哪里可以找到它?
  13. Web API数据传输加密
  14. Pixelmator for Mac(图像编辑器)
  15. Qt操作Excel类
  16. TCP连接建立三握手
  17. 企业微信公众号内容写什么好?微信公众号如何选题?
  18. 利用指针完成两个数字的交换(c语言)
  19. golang与python交互_Go语言的类IPython 交互式编程界面
  20. 08 css补充知识

热门文章

  1. 【web-攻击用户】(9.6.2)其他客户端注入攻击:开放式重定向漏洞
  2. Ubuntu14.04.6系统下安装软件和程序库(含安装PyCharm、Visual Studio Code、Boost和Eigen程序库等)
  3. 面试复盘:2020.09.09
  4. 通信领域的dB计量单位
  5. 笔记本拆机实践:加装内存条和固态硬盘
  6. C语言中 sinx cosx 的用法
  7. 通向财务自由之路04_设定你的目标
  8. 深入理解Linux网路技术内幕学习笔记第四章:通知链
  9. 闲云野鹤:吃鸡(一)之场景制作:使用GPU instancing方式制作刷草插件
  10. cpu、内存、磁盘、操作系统的关系