tmx瓦片地图文件内容的解析与地图自动生成

cocos2dx 3.3 TMX系列简单分析 位置:coco2d/2d/CCTMX 关于TiledMap 一般使用Tile工具来制作地图 生成tmx文件,map包含多个layer、object,layer内包含tile,tile存储为gid tmx文件其实最终也是xml形式的 从CCTMXXMLParser入手 TMXLayerInfo 层信息,包含各种附加属性值,以及基本属性,比如name、size、offset 阅读详情

想在游戏中使用瓦片地图,但发现手动拼地图确实很麻烦,于是就想能不能自动生成地图。打开一个我编辑好的地图:

tmx瓦片地图文件内容的解析与地图自动生成 - ♂苹果 - 眼睛想旅行

 保存之后会是一个.tmx格式的文件,用文本编辑器打开这个文件,你会发现这个文件是一个xml文件。

tmx瓦片地图文件内容的解析与地图自动生成 - ♂苹果 - 眼睛想旅行

 既然是一个xml文件,那我们只要用程序生成这个文件不就可以生成地图了么。有了这个思路之后,现在的问题就是理解这个xml文件的格式。

tmx文件有三部分组成,

1.第一部分是用来编辑地图的图块。

软件会对所有图块编号,在图块中的图块属性也会保存在这个xml文件中。比如

tmx瓦片地图文件内容的解析与地图自动生成 - ♂苹果 - 眼睛想旅行

这个图块,我给图块设置了一个"floor_r"的属性,意思是这个图块是用来作地面的。

2.第二部分是地图图层.

每一个地图图层从左上角开始为编号1,使用从左向右从上向下的方式为图层上所有坐标设置图块编号,数值为0的图块表示图层的这个位置没有放置图块,图层数据有多种保存格式,一般常用的都是base64编码的zlib压缩数据。像下边这样。

tmx瓦片地图文件内容的解析与地图自动生成 - ♂苹果 - 眼睛想旅行
我们可以看到"bg"这个层,使用的是"base64",压缩格式是"zlib".
另外还有别的数据保存格式,可以在"地图"-->"地图属性"中进行设置。
tmx瓦片地图文件内容的解析与地图自动生成 - ♂苹果 - 眼睛想旅行
 
其中,xml,csv都是未压缩可以直接读取的。代有压缩的格式有gzip和zlib两种格式,因为压缩后的数据是二进制数据流不方便作为文本传输和读取,所以对压缩数据又采用了base64编码。

 3.第三部分,是地图中的对象层,如下图

tmx瓦片地图文件内容的解析与地图自动生成 - ♂苹果 - 眼睛想旅行

 对象层数据没有压缩,也没有用base64编码,是可以直接读取的xml格式。


知道了文件数据格式,接下来自然就可以生成相应地图了。只要你生的文件格式是按这个来的,你的生成的地图编辑器就可以解析。

对与base64的解码以及zlib解压缩。我也是使用python进行的。

import base64

import zlib

import struct

basezipstr = 'eJzt18ENAjEMAMFc/4JCoBCuLO7DM0h88D5mKrC8UhSvBQAAAMC027HW/Ziego/H1eKpR4YeLXq06NGiR4seLa+rxanHT9wIexO78absTexGjz09WvRo0aNFj5aJ3bgR9qq7Kd0opVmmlN600ixTSjsozTKltIPSLFNKOyjNMqW0g9IsU0o7KM0ypfQPL83Cd26TFm9Zix4terTo0aJHix4tbhMA4J/etYZAUQ=='

basezipout = base64.b64decode(basezipstr)

decompressed = zlib.decompress(basezipout)

datax = struct.unpack('4800i', decompressed)  

print datax


输出结果:

(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...这个地图层里有有无数个空图块,所在大部分数值为0

, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 397, 398, 0, 0, 

...地图大小是100X48,所以一共有4800个图块参数,这里省去若干个

, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)


代码说明:
这里用到了,三个库,base64,zlib,struct,前两个大家都明白,第三个库struct 是python对C/C++语言结构体数据打包和解析的工具类库。使用这个库可以解析结构体类型的二进制数据包。常用在与C/C++类程序的socket二进制数据流通信中会经常用到。

参考:http://blog.youkuaiyun.com/yingluowh/article/details/37903319


AndEngine游戏编程学习(二) TMX地图 这次来学习下AndEninge里TMX地图的用法。以为很简单,结果还是折腾了我好久 好久 怨念啊。(一) Tiled的使用免费的TMX制作工具有不少,找了半天和看了不少人的推荐 ,选择了Tiled  下载地址 :www.mapeditor.org下载安装后就可以使用了,我看了下 示例里面需要两个文件 一个tmx文件 ,还有个 tsx文件 。tmx文件里保存的是地图数据,地图矩阵就在里面,但打开显示 阅读详情

相关推荐

Cocos2d-x二维瓦片地图开发指南:从TMX解析到性能优化

瓦片地图是2D游戏开发中用于构建大型游戏世界的核心技术,其核心原理是将地图分解为可复用的基础单元(瓦片),通过排列组合高效生成复杂场景。这项技术通过资源复用和按需渲染,显著优化了内存占用与渲染性能,是RPG、策略战棋等类型游戏的通用解决方案。在具体工程实践中,TMX格式作为通用的地图数据标准,定义了瓦片、图层与对象层的结构,实现了数据与资源的分离。开发者借助Tiled编辑器进行可视化设计后,可在Cocos2d-x等引擎中通过解析TMX文件,加载瓦片集、渲染图层,并将对象层数据转化为游戏内的碰撞体、出生点等逻

weixin_33050117的博客 338

tiledmap入门---2.tmx文件解析

一、元素解析 1. map地图信息 <map version="1.0" tiledversion="1.1.6" orientation="orthogonal" renderorder="right-down" width="13" height=&q

WADE 5732

Cocos2D-X瓦片地图(Tile Map)全解析:从TMX原理到性能优化实战

瓦片地图(Tile Map)是2D游戏开发中构建大型场景的核心技术,其原理是将游戏世界划分为网格,并使用可复用的瓦片(Tile)进行拼接。这种技术通过数据驱动的方式,将地图布局信息存储在TMX等格式的文件中,实现了资源的高效复用与内存的显著节省。在游戏引擎如Cocos2D-X中,TMXTiledMap类负责解析和渲染地图,其价值在于将美术资源与逻辑数据分离,极大提升了关卡设计的可视化与迭代效率。该技术广泛应用于横版过关、RPG、策略等2D游戏类型,用于构建复杂、可交互的游戏世界。本文聚焦于Cocos2D-X

weixin_29000991的博客 291

CocosCreator之粒子导入

粒子资源(ParticleSystem) 导入粒子资源 将 Cocos2d 支持的粒子.plist文件直接放到工程资源目录下。 在场景中添加粒子系统 方法一,从资源管理器里将粒子资源直接拖到层级管理器: 方法二,从资源管理器里将粒子资源直接拖到场景编辑器: 方法三,在已有节点上添加一个粒子系统(ParticleSystem)组件,从资源管理器里将粒子资源直接赋给组件的File属性: 注意:不支持.plist文件中的 sourcePosition ...

码之有道 1594

Cocos2D-X瓦片地图开发实战学习笔记

Cocos2D-X 是一款基于 C++ 的开源、跨平台 2D 游戏引擎,广泛应用于移动游戏、教育类应用及交互式多媒体项目开发。其采用 OpenGL ES 进行渲染,具备高性能图形处理能力,并支持 iOS、Android、Windows、macOS 等多平台一键发布,极大提升了开发效率。引擎采用分层架构设计,包含SceneLayerSpriteAction等核心类,便于组织复杂的游戏逻辑。尤其在 2D 地图系统方面,Cocos2D-X 内置了对TMX 格式瓦片地图的完整支持,通过。

weixin_35794316的博客 768

tmx资源包含PNG

随便乱涂的地图,推荐大家自己做一张

【Cocos2d-X开发学习笔记】第25期:游戏背景之瓦片地图集类(CCTMXTiledMap)的使用...

本系列学习教程使用的是cocos2d-x-2.1.4(最新版为3.0alpha0-pre) ,PC开发环境Windows7,C++开发环境VS2010 地图编辑器的详细使用请参考文章:《【Cocos2d-X开发学习笔记】游戏开发工具之Tiled地图编辑器的使用》 一、瓦片地图集类CCTMXTiledMap 瓦片地图集类CCTMXTiledMap是Cocos2D-...

810364804 353

Spine动画在Unity里卡顿、闪烁、排序错乱?这些性能优化与渲染问题一次讲清

本文深入解析了Spine动画在Unity中常见的卡顿、闪烁和排序错乱问题,提供了全面的性能优化与渲染解决方案。从性能瓶颈诊断到材质合并、动态合批优化,再到层级错乱与Alpha闪烁的处理,帮助开发者提升动画表现和运行效率。特别针对Unity和Spine的协同工作进行了详细的技术探讨。

weixin_29967445的博客 382

cocos2d瓦片地图完全指南:TMX文件5步搭建平台跳跃游戏(附六边形地图)

cocos2d(cocos 库)是一个用 Python 编写的 2D 图形游戏库,它的瓦片地图(Tiled Map)功能可以一行代码载入业界标准的 TMX 文件。本文带你用 5 个步骤从零搭出一个可滚动、可碰撞、可跳跃的平台跳跃游戏,最后还附赠六边形地图与 TMX 对象层的玩法,新手照着做就能做出自己的第一个瓦片关卡。🎮 [![cocos2d瓦片地图平台跳跃游戏瓦片集(墙层与装饰层)](htt

gitblog_00050的博客 1064

4.无限共轭距柯克物镜设计——zemax学习笔记

无限共轭cooker物镜

fly_daerm的博客 1597

小程序结合Three.js与gsap:打造流畅3D动画的完整指南

本文详细介绍了如何在小程序中整合Three.js与GSAP动画库,打造流畅的3D动画效果。通过从环境搭建、基础场景创建到模型加载与复杂动画编排的完整指南,帮助开发者克服小程序性能限制,实现如商品360度展示等沉浸式交互体验,提升产品视觉吸引力。

python9snake的博客 548

3分钟上手!Tiled地图数据可视化:用Python解析TMX文件

你是否曾导出Tiled地图后,对着一堆数字和XML标签感到困惑?想分析地图中不同地形的分布密度,却不知从何下手?本文将带你用Python快速解析TMX文件,把抽象的地图数据转化为直观的可视化图表,让地图设计决策有据可依。 读完本文你将掌握: - TMX文件结构的核心要素解析 - 使用Python提取地图瓦片ID与坐标信息 - 生成热力图展示地形分布规律 - 统计分析不同区域的瓦片使用频率 ##...

gitblog_00588的博客 899

VisionMaster位置修正功能深度解析:如何让找圆工具自动跟随移动目标?

本文深度解析海康威视VisionMaster平台的位置修正功能,重点介绍如何通过模板匹配与找圆工具的智能联动实现移动目标的动态追踪。文章详细阐述了工业视觉检测中的坐标系同步原理、模板匹配配置技巧及异常处理策略,为工程师提供了一套完整的工业级解决方案。

uu89012的博客 282

TMX格式实战指南:突破2D游戏地图开发瓶颈的终极解决方案

TMX格式是Tiled地图编辑器原生支持的灵活2D游戏地图格式,专为突破传统游戏地图开发瓶颈而设计。作为开源项目Tiled的核心文件格式,TMX提供了一种高效、可扩展的方式来描述基于瓦片的地图,支持任意瓦片尺寸、多层结构、多个瓦片集以及自定义属性设置。 ## 🎮 什么是Tiled和TMX格式? Tiled是一款功能强大的2D地图编辑器,采用TMX(Tiled Map XML)格式作为其主要文

gitblog_01001的博客 808

在Ansys Simplorer中设计三相逆变器,并与Maxwell FEA耦合,实现160kW PMSM

在这篇博文中,我们将探讨如何使用设计三相逆变器,并将其与Ansys Maxwell中的电磁有限元分析模型耦合,以获得准确的系统级结果。Ansys Electronics为多域仿真提供了强大的生态系统,可实现跨各种物理领域的无缝集成。Maxwell用于电磁有限元分析 (FEA),Simplorer(Twin Builder) 用于系统级逆变器和控制器设计,Icepak用于电子热仿真。例如,我们将使用 Simplorer 介绍160 kW、8 极永磁同步电机 (PMSM)的逆变器设计过程。让我们开始吧!

jkh920184196的博客 1426

Unity零基础到入门☀️| 万字教程 讲解Unity中的数据存储 PlayerPrefs、XML、JSON【建议收藏】

本文章是Unity零基础到入门专栏的系列文章。 适合对Unity3D引擎感兴趣的小伙伴学习,偏向于新手学习! 本篇文章就来介绍一下Unity中三种基本的数据存储方式:PlayerPrefs、XML、JSON

努力前行,总会成为自己心中的那道光 8万+

SDL游戏开发之三-瓦片地图

一.瓦片地图 1)瓦片地图简介 瓦片地图(Tiled Map),又称为瓷砖地图,是在游戏开发中经常使用到的技术,它是由少量的尺寸相同的、小的瓦片图片拼接而成的很大的地图。相对于使用一张张图片来绘制地图而言,瓦片地图不仅大大地节省了内容,而且增加了图片的重用性和绘制性能。 使用一般的背景图会面临很多问题: ①:OpenGL ES对于纹理有大小限制,最大支持2048*2048像素,且超出这个范...

bull521的博客 5665

【AHE数据集】历史/未来全球网格热排放数据 PF-AHF

AHE数据集

WW、forever的博客 128

终极TMX格式技术解析:从原理到实战的完整指南

TMX(Tile Map XML)是Tiled地图编辑器的核心文件格式,它以XML为基础,提供了灵活高效的2D游戏地图描述方案。本文将深入剖析TMX格式的技术细节,帮助开发者掌握从格式解析到实际应用的全流程。 ## 什么是TMX格式? TMX是一种基于XML的开放标准,专为存储瓦片地图数据而设计。它支持多种地图取向(正交、等距、六边形)、图层管理、瓦片集引用和自定义属性,几乎满足所有2D游戏地

gitblog_00002的博客 730

基于Python的房地产评估数据抓取与分析 —— 房价走势与市场报告

在房地产行业中,了解和分析房产价格的变化趋势、各个地区的房价差异以及市场评价报告,可以帮助投资者、购房者以及政策制定者做出更加明智的决策。本文介绍了如何使用Python爬虫技术抓取房地产平台上的房产评估报告、价格走势等数据,并对抓取的数据进行分析。通过这些技术,您可以自动化抓取房地产平台的数据,分析房价走势,获取市场报告,为房地产投资决策提供数据支持。假设我们要从链家网抓取某个房产的价格、房产描述以及历史成交价格,首先需要获取目标房产页面的URL,并发送HTTP请求。伪装为常见浏览器,避免被识别为爬虫。

2201_76125261的博客 847

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Tiled地图编辑器TMX格式详解:从基础到高级应用

TMX(Tile Map XML)是Tiled地图编辑器专用的地图文件格式,基于XML结构设计。作为一款开源2D地图编辑器,Tiled通过TMX格式为游戏开发者提供了一种灵活的地图描述方式。 ### 核心特点 - **多尺寸支持**:可定义任意尺寸的瓦片(tile) - **多层结构**:支持无限数量的图层叠加 - **多图集兼容**:可同时引用多个瓦片集(tileset) - **自定义属性...

gitblog_00629的博客 656

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

TMX格式深度解析:构建专业级2D游戏地图的完整指南

TMX格式作为Tiled地图编辑器的核心文件格式,为现代2D游戏开发提供了强大的地图构建能力。本文将深入剖析TMX格式的核心结构、应用场景和最佳实践,帮助开发者掌握这一专业工具。 ## 地图基础架构:从零开始理解TMX TMX格式采用XML结构,其设计理念围绕"分层管理"和"资源复用"两大核心原则。与传统的位图地图不同,TMX将地图元素分解为可独立编辑的组件,实现了真正的模块化开发。 ###

gitblog_00713的博客 465

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

从零掌握Tiled地图编辑器:TileLayer与MapReader核心架构解析

Tiled地图编辑器是一款功能强大的开源2D地图编辑工具,广泛应用于游戏开发和关卡设计。本文将深入解析其核心架构中的TileLayer与MapReader组件,帮助开发者理解地图数据的存储结构与加载机制,轻松掌握高效地图编辑的关键技术。 ## 🎮 Tiled地图编辑器简介 Tiled采用灵活的模块化架构设计,核心功能围绕地图数据的创建、存储和渲染展开。作为一款面向新手和专业开发者的工具,其直

gitblog_00800的博客 1219

TMX地图格式

From: http://www.cnblogs.com/FireStudio/archive/2012/06/04/2534251.html 原文地址:https://github.com/bjorn/tiled/wiki/TMX-Map-Format TMX Map Format Page History The TMX (Tile Map XML) map

Game Developer 1551

bjorn/tiled项目中的TMX地图支持库与框架全面解析

还在为游戏地图编辑器的选择而烦恼?还在手动编写地图数据格式?Tiled(瓦片地图编辑器)的TMX格式已经成为2D游戏开发的事实标准,而bjorn/tiled项目正是这一强大工具的核心实现。本文将深入解析TMX地图格式的技术架构、核心实现原理,以及如何在各种游戏引擎中集成使用。 ## TMX地图格式:游戏开发的基石 TMX(Tile Map XML)是Tiled编辑器专用的地图文件格式,基于XM...

gitblog_00831的博客 485

【免费下载】 Tiled地图编辑器TMX格式详解:从基础到高级应用

TMX(Tile Map XML)是Tiled地图编辑器专用的地图文件格式,基于XML结构设计。作为一款开源2D地图编辑器,Tiled通过TMX格式为游戏开发者提供了一种灵活的地图描述方式。 ### 核心特点 - **多尺寸支持**:可定义任意尺寸的瓦片(tile) - **多层结构**:支持无限数量的图层叠加 - **多图集兼容**:可同时引用多个瓦片集(tileset) - **自定义属性...

gitblog_00156的博客 695
上一篇: 使用BP神经网络对两个数作异或运算(转)
下一篇: 开源路由器openWrt教程(转)
woodcol
博客等级 码龄19年 288粉丝 429原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值