最近开始学习Cocos2D游戏开发引擎,对于里面的地图的用法的理解:
CCTMXTititedMap,有两种格式的地图,一种是CCLayer的形式,一种是object对象的形式。之所以要写这篇文章,是因为这个Object对象层,因为在之前学习的时候,创建object对象,在地图上的表现形式总是一个方框,边框颜色为黄色,可是看别人的例子的时候,人家创建的object对象却是一个黄色的实心圆点,当时无论如何就是找到不到原因,在别人的帖子里面也没有找到为什么会这个样子,直到今天,直到今天,我在Xcode里面打开创建的TMX格式的地图,发现如下的代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE map SYSTEM "http://mapeditor.org/dtd/1.0/map.dtd">
<map version="1.0"orientation="orthogonal"width="27"height="20"tilewidth="32"tileheight="32">
<tileset name="tmw_desert_spacing"firstgid="1"tilewidth="32"tileheight="32"spacing="1"margin="1">
<image source="tmw_desert_spacing.png"/>
<tile id="29">
<properties>
<property name="buildable" value="1"/>
</properties>
</tile>
</tileset>
<layer name="Background"width="27"height="20">
<data encoding="base64"compression="gzip">
H4sIAAAAAAAAAO2VTQuDMAyGy3A6P7YO3YYH3XE77v//uyXQgEiKpk178vAglZSnJi+2McY0AbTAWwjuewD9Tp6RLtxXAhVw2aivFVw3wAL3DK6Xc1n3/pvQRWu7Ua/p4vgou5Y9q4w/J5rfRRlBOuDqnmvXBJyEcGc8L3xIwbhC4fpBvtHTQw0X5YB66ZuX5F9D7Jnzj3GlyrxmDiWZmiNdue4U6XyJIcB1EM8ffzIN63AIAAA=
</data>
</layer>
<objectgroup name="Objects" width="0" height="0">
<object name="Waypoint0"x="887"y="292"/>
<object name="Waypoint1"x="438"y="296"/>
<object name="Waypoint2"x="429"y="22"/>
<object name="Waypoint3"x="22"y="23"/>
<object name="Waypoint4"x="24"y="493"/>
<object name="Waypoint5"x="433"y="497"/>
<object name="Waypoint6"x="437"y="337"/>
<object name="Waypoint7"x="888"y="339"/>
</objectgroup>
<objectgroup name="Object_xc" width="0" height="0">
<object name="Object1"x="64"y="128" />
<object name="Object3"x="64"y="384" />
<object name="Object2"x="64"y="256" />
</objectgroup>
</map>
发现:别人创建的对象,都没有宽、高属性,而我创建的OBJECT却又属性,并且w=h=32,表示一个方格为32×32大小的。
于是我就将我创建的object的W、H属性删掉,然后保存。然后使用地图编辑工具打开,解决让我惊奇的现象发生了,我创建的点和别人例子讲的点已经变成一样的了,呵呵。
后来才明白,当我们在创建objct的时候,是需要设置宽、高参数的,如果设置为0,那么这个object就表示为一个黄色的点,如果设置宽、高为其他的值,那么就会在地图上面呈现一个指定宽高的方框,但是不管是实心的黄色圆点,还是一个带有黄色边框的指定大小的四边形,当iphone加载这个地图的时候,这些点均不在地图上面显示。
这些是用来设置碰撞点,也就是障碍物!
THE END !