tiledmap⼊门---2.tmx⽂件解析⼀、元素解析
1. map地图信息
<map version="1.0" tiledversion="1.1.6"
orientation="orthogonal"
renderorder="right-down"
width="13" height="13"
tilewidth="32"  tileheight="32"
infinite="0"
nextobjectid="9">
**orientation:**地图视⾓
**renderorder:**地图坐标⽅向
**width与height:**多少个图块
**tilewidth和tileheight:**⼀个图块的⼤⼩
2. tileset图块信息
<tileset firstgid="3" name="enemy"
tilewidth="32" tileheight="32"
tilecount="256" columns="4">
<image source="enemy.png" width="128" height="2048"/>
</tileset>
**firstgid:**第⼀个图块的ID,每⼀个图块都有单独的ID,后⾯的图块ID依次加1,让图层⾥的元素引⽤**tilecount:**在图块集合⾥所有图块的数量
**columns:**图块列数
**image source:**引⽤的原图⽚
gzip是什么文件夹3. layer图块层信息
<layer name="floor" width="13" height="13">
<data encoding="base64" compression="gzip">
H4sIAAAAAAAAE2NkYGBgHMWjeBBjANKfHWSkAgAA
</data>
</layer>
这⾥主要看下data数据,先进⾏了gzip压缩,然后进⾏base64加密,在扩展知识⾥详细解释
4. 对象层信息
<objectgroup name="object">
<object id="1" name="npc0" type="npc" x="128" y="320" width="32" height="32">
<properties>
<property name="image" value="npc.png"/>
<property name="rectX" value="0"/>
<property name="rectY" value="0"/>
</properties>
</object>
<object id="2" type="teleport" x="192" y="32" width="32" height="32">
<properties>
<property name="heroTileCoordX" value="2"/>
<property name="heroTileCoordY" value="11"/>
<property name="image" value="down_floor.png"/>
<property name="targetMap" value="0"/>
</properties>
</object>
</objectgroup>
注意对象的x,y是每⼀个图块的宽⾼*该图块所在的位置
**property:**对象的属性,这⾥可以按照需求⽆限扩展
⼆、扩展知识
1. 什么是base64?
Base64⼀般⽤于在HTTP协议下传输⼆进制数据,由于HTTP协议是⽂本协议,所以在HTTP协议下传输⼆进制数据需要将⼆进制数据转换为字符数据。然⽽直接转换是不⾏的。因为⽹络传输只能传输可打印字符。什么是可打印字符?在ASCII码中规定,0127这95个字符属于可打印字符,也就是说⽹络传输只能传输这95个字符,不在这个范围内的字符⽆法传输。那么该怎么才能传输其他字符呢?其中⼀种⽅式就是使⽤Base64。
Base64的原理其实很简单,⾸先,需要准备⼀个包含64个字符的表格,0~63分别对应了唯⼀⼀个字符,⽐如18对应的是S。
然后,对⼆进制数据进⾏处理,每3个字节⼀组,⼀共3x8=24bit,将这24bit划分为4组,每组正好6个bit,6bit的数据刚好可以表⽰0~63的范围,也就可以对应上表的64个字符。这样我们就得到了4个数字作为索引,然后查表获得相应的4个字符,就得到了编码后的字符串。
(1) 字符串"Ow!"被拆分成3个8位的字节(0x4F、0x77、0x21)。
(2) 这3个字节构成了⼀个24位的⼆进制01001111 01110111 00100001。
(3) 这些被划分为⼀些6位的序列010011、110111、011100、1000001.
(4) 每个6位值都表⽰了从0~63之间的数字,对应base64字母表中的64个字符之⼀。得到的base64编码字符串是4个字符的字符
串“T3ch”。然后就可以通过线路将这个字符串作为“安全的”8位字符传送出去,因为只⽤了⼀些移植性最好的字符(字母、数字等)。
2. gzip
减少⽂件⼤⼩有两个明显的好处,⼀是可以减少存储空间,⼆是通过⽹络传输⽂件时,可以减少传输的时间。gzip 是在 Linux 系统中经常使⽤的⼀个对⽂件进⾏压缩和解压缩的命令,既⽅便⼜好⽤。31、128这33个字符属于控制字符,32

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。