`
macken
  • 浏览: 348231 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

libgdx学习之TiledMap(一)

    博客分类:
  • game
阅读更多

       libgdx自0.9.8版本开始对tile map的读取重新进行了实现,原来com.badlogic.gdx.graphics.g2d.tiled包下的类不在使用,新的map包位于com.badlogic.gdx.maps,增强了libgdx在地图方面的扩展性、灵活性。前后两种tile map的加载方式也有所区别。0.9.8之前的tiledmap加载方法请见博文:http://www.cnblogs.com/htynkn/archive/2012/01/13/libgdx_14.html

一、map类结构关系

代码见这里


可以继承map、maprenderer等实现自己的地图结构

 

二、tmx文件结构

<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="orthogonal" width="13" height="8" tilewidth="64" tileheight="64">
 <tileset firstgid="1" name="grass_ground" tilewidth="64" tileheight="64">
  <image source="grass_ground.png" trans="000000" width="512" height="512"/>
  <tile id="56">
   <properties>
    <property name="groupid" value="1"/>
   </properties>
  </tile>
  <tile id="57">
   <properties>
    <property name="groupid" value="2"/>
   </properties>
  </tile>
  <tile id="60">
   <properties>
    <property name="groupid" value="1"/>
    <property name="targetid" value="2"/>
    <property name="unittype" value="hero"/>
   </properties>
  </tile>
  <tile id="61">
   <properties>
    <property name="groupid" value="2"/>
    <property name="targetid" value="1"/>
    <property name="unittype" value="hero"/>
   </properties>
  </tile>
 </tileset>
 <tileset firstgid="65" name="201201121554224250" tilewidth="64" tileheight="64">
  <image source="201201121554224250.png" width="321" height="242"/>
 </tileset>
 <layer name="ground" width="13" height="8">
  <data encoding="base64" compression="zlib">
   eJxd0NsKwkAMRdEB672KivggImpVBK2XVlv//8vcgRMIPiySyXQS0nVKKZcRtliF81C5xTE26KIO7ugpf2OPo3KrfdDHK3xT4qLcFBiEnoXe1Hq3Q4aTzuaBKyppQo8DZpj8zXaVYhPm2B4LTMOO3tvmn8M+fv/Uf8rDPr7jTTWfs0SLLzqKbahl4ndz/AA4bQ5u
  </data>
 </layer>
 <layer name="units" width="13" height="8">
  <data encoding="base64" compression="zlib">
   eJxjYCAdWJKo3ooCPbZEqrej0B5S9dALAACEqgK7
  </data>
 </layer>
 <objectgroup name="player" width="13" height="8"/>
 <objectgroup name="123" width="13" height="8">
  <object name="123" x="125" y="209" width="79" height="61"/>
  <object name="235" x="320" y="211">
   <polyline points="0,0 64,26 45,39 0,45 -3,0 8,26 -2,36"/>
  </object>
  <object name="568" x="400" y="286" width="58" height="52">
   <ellipse/>
  </object>
  <object name="123123" x="433" y="172">
   <polyline points="0,0 63,31 8,50 -1,-2"/>
  </object>
  <object name="sdf" x="526" y="270">
   <polygon points="0,0 -3,99 39,62 62,14 49,92"/>
  </object>
  <object name="wersf" gid="70" x="338" y="346"/>
 </objectgroup>
</map>

    tileset是Tile编辑器中的图块,一个图块是一个tileset,当地图中使用到一个tile时,会将该tile的数据加入到tileset中,每一个tile有一个id,多个图块的tile id是递增的。

    layer是Tile编辑器中的图层,一个地图有多个图层,一个图层是一个layer,图层中存放tile数据,并使用了编码和压缩格式,encoding,compression属性;

    objectgroup是Tile编辑器中的对象,一个objectgroup可以多个object,object有多种类型:polyline、ellipse、polygon等等,它们有不同的属性。

     

三、TiledMap类结构

com.badlogic.gdx.maps.tiled 包下类结构



 

TiledMap:继承Map类,表示整个tiledmap对象;

TiledMapTileSet:对应tmx文件中的图块,一个图块为一个TiledMapTileSet;

TiledMapTile:对应图块中的一个块,多个TileMapTile组成一个TiledMapTileSet;

TiledMapTileLayer:继承MayLayer类 对应tmx文件中的一个图层;

TiledMapTileSets:一个map中用到的所有TiledMapTileSet;

 

下面准备写一下TmxMapLoader和TiledMapRenderer

 

参考资料:https://code.google.com/p/libgdx/wiki/GraphicsTileMaps

      

 

 

  • 大小: 27.6 KB
  • 大小: 15.7 KB
分享到:
评论

相关推荐

    LibGdx TiledMap地图处理工具

    在LibGdx中,TiledMap是一个重要的组成部分,它允许开发者使用Tiled Map Editor创建和管理2D游戏地图。TiledMap不仅支持多层地图,还支持各种对象组和图像层,使得地图设计变得灵活且直观。 TiledMapPacker是LibGdx...

    libGDX学习记录(一)源码

    libGDX学习记录(一)源码,搭建一个桌面端和android端的libGDX框架,展示图片。 详细地址:https://blog.csdn.net/weixin_47450795/article/details/110003413

    libgdx学习资料

    - 社区提供了许多第三方库,如Ashley(实体系统)、TiledMap(地图编辑器支持)和Hiero(位图字体生成器)等,进一步扩展了LibGDX的功能。 这个“libgdx学习资料”压缩包可能包含了上述领域的教程、示例代码、API...

    libgdx学习文档 DOC格式

    Libgdx是一款强大的开源游戏开发框架,它支持2D和3D游戏的开发,并且跨平台,可以在JavaSE环境(包括Mac、Linux、Windows等操作系统)以及Android平台...开发者可以通过学习和掌握Libgdx,快速地构建起自己的游戏项目。

    libgdx 游戏地图的制作

    LibGDX是一个强大的开源游戏开发框架,用于创建跨平台的游戏。在这个主题中,我们将深入探讨如何使用LibGDX来制作游戏地图。游戏地图是任何2D游戏的核心元素,它为玩家提供了一个探索和互动的空间。LibGDX 提供了...

    libgdx学习文档

    ### libgdx学习文档知识点详解 #### 一、libgdx概述 libgdx是一款功能强大的跨平台游戏开发框架,支持2D与3D游戏的创建。它旨在为开发者提供一套全面的API,覆盖从图形渲染到物理模拟的广泛领域。libgdx的亮点在于...

    Libgdx专题系列第一篇 第一节

    本专题系列将深入探讨Libgdx的使用方法,帮助你掌握这个工具并开始你的游戏开发之旅。 在“Libgdx专题系列第一篇 第一节”中,我们将着重介绍Libgdx的基础知识和环境搭建。首先,你需要下载并安装Java Development ...

    Libgdx专题系列 斜45°地图

    通过深入学习和实践,开发者可以利用LibGDX创造出具有丰富视觉效果和互动性的2D游戏世界。提供的文件“LibgdxText_3”可能是这个专题系列的源代码或文档,可以帮助进一步理解和实现斜45°地图的细节。

    libGDX学习记录(二)阶段源码

    libGDX学习记录(二)阶段源码 展示TexturePacker合成的图片,详细地址: https://blog.csdn.net/weixin_47450795/article/details/110037945

    libgdx学习文档(比较全面)

    ### libgdx学习文档知识点详解 #### 一、Libgdx概述 Libgdx是一款功能强大的跨平台游戏开发框架,支持2D与3D游戏的开发。它旨在为开发者提供一套简洁高效的API来构建高性能的游戏应用。Libgdx不仅可以在Windows、...

    libgdx学习总结

    libgx学习过程总结,记录本人所遇到的问题和心得

    Libgdx开发丛书之 Learning LibGDX Game Development, 2nd Edition

    《Libgdx开发丛书之 Learning LibGDX Game Development, 2nd Edition》是一本专为游戏开发者准备的图书,旨在帮助读者深入理解并熟练运用LibGDX这一强大的跨平台游戏开发框架。LibGDX是一个开源的Java库,支持在...

    libGDX学习记录(三)项目源码 接水滴(欢迎界面及计分器) Drop.zip

    这个压缩包"Drop.zip"包含的是一个基于libGDX的游戏项目,名为"接水滴",它提供了欢迎界面和计分系统,是一个很好的学习libGDX入门的实例。在深入探讨这个项目之前,我们需要了解libGDX的基本概念。 libGDX是一个全...

    Libgdx专题系列 第一篇 第七节

    Libgdx是一个强大的开源游戏开发框架,专为创建跨平台的游戏而设计。它支持Windows、Linux、MacOS、Android以及HTML5等平台,使开发者能够编写一次代码,到处运行。在"Libgdx专题系列 第一篇 第七节"中,我们将深入...

    libGDX学习记录(三) 接水滴源码 Drop.zip

    在这个“libGDX学习记录(三) 接水滴源码”中,我们将深入探讨如何使用libGDX来构建一个简单的游戏——接水滴。这个例子可能是为了教授初学者基本的游戏逻辑、动画处理和用户交互。 在libGDX中,游戏的核心通常由`...

    使用LibGDX开发一个完整游戏 教程全集

    在这一系列的教程中,你将逐步学习如何使用上述技术和工具,从创建基本的Game类开始,搭建游戏结构,到设计游戏逻辑,直至完成一个功能完备的游戏。每个文档(game1至game11)都将深入讲解一个具体主题,帮助你逐步...

    libgdx_wiki学习文档

    libGdx是一个跨平台的2D/3D的游戏开发框架,它由Java/C/C++语言编写而成。libgdx兼容Windows、Linux、Max OS X、Java Applet、Javascript/WebGL与Android(1.5版本+)平台。该文档为libgdx在wiki上的官方学习文档。

    LibGDX Game Development Essentials

    综上所述,这本“LibGDX Game Development Essentials”是想要学习LibGDX框架并制作游戏的读者的宝贵资料。通过阅读本书,读者将能够了解LibGDX游戏开发的核心概念和实践技能,从而具备开发基本游戏项目的能力。

    libGDX学习记录(二)完整源码 水果落地

    **libGDX学习记录(二)完整源码 水果落地** libGDX是一个开源的游戏开发框架,专为跨平台游戏设计,支持Windows、Linux、Mac OS X、Android以及HTML5。它提供了丰富的功能,包括图形渲染、音频处理、输入管理、...

Global site tag (gtag.js) - Google Analytics