问题内容:1 利用
tiled 对象层
绘制碰撞的边界
2 通过 cocos2d-x "CCTMXTiledMap" 的对象 读取地图中的点信息
3 通过读出的信息绘制 box2d “b2EdgeShape” 刚体
问题解决:
引擎版本:cocos2d2.1beta3 + box2d 2.2.1
一 关于tiled
object部分为所需要的内容 其中X,Y 表示绘制的不规则图形的起点位置 ployline 为以起点为初始点 连续绘制的坐标点值
以上为地图所需要内容
二 引擎部分修改 使之能够完成地图内容的读取
2.1 读取方式可以有两种
一是 利用cocos2d-x所提供的接口 CCTMXTiledMap 读取 (下文详解)
二是 利用xml解析器 TinyXml读取 (此部分略过 有兴趣的话可以自己尝试下)
以上为引擎部分修改
2 通过 cocos2d-x "CCTMXTiledMap" 的对象 读取地图中的点信息
3 通过读出的信息绘制 box2d “b2EdgeShape” 刚体
问题解决:
引擎版本:cocos2d2.1beta3 + box2d 2.2.1
一 关于tiled
1.1 创建对象层
点击历史上面的带星号按键 有添加对象层选项 点击创建 创建好后 图层中会显示对象层
1.2 多边形与折线
创建好对象层后 选择 此时上面折线选项可以应用 选择选项绘制不规则线 例如:
1.3 tmx文件内容
保存绘制完成的地图后 记事本打开tmx文件看代码
object部分为所需要的内容 其中X,Y 表示绘制的不规则图形的起点位置 ployline 为以起点为初始点 连续绘制的坐标点值
以上为地图所需要内容
二 引擎部分修改 使之能够完成地图内容的读取
2.1 读取方式可以有两种
一是 利用cocos2d-x所提供的接口 CCTMXTiledMap 读取 (下文详解)
二是 利用xml解析器 TinyXml读取 (此部分略过 有兴趣的话可以自己尝试下)
2.2 修改引擎
其中CCTMXTiledMap 不支持读取polyline 需要修改引擎代码 CCTMXXMLPaerser.cpp 中CCTMXMapInfo::startElement函数 下部 有elementName == "polyline" / elementName == "polygon" 代码块 内容被隐藏掉 需要修改其中内容 如下:
然 后重新生成cocos2d-x项目 将生成好的.lib .dll拷到自己的项目中
以上为引擎部分修改