cocos2dx3.0读取tilemap对象层信息

2015年01月15日 13:05 0 点赞 0 评论 更新于 2017-05-02 12:52

在开发过程中,有时需要读取tilemap对象层的信息。下面为大家分享关于cocos2dx3.0读取tilemap对象层信息的相关代码。

void GameLayer::loadMapInfo(TMXTiledMap *map)
{
// 获取指定名称的对象层
TMXObjectGroup *objGroup;
objGroup = map->objectGroupNamed("CollisionBound");
// 注意:这里的 "CollisionBound" 是我自己创建的对象层名称,你需要使用自己创建的对象层名称

// 检查对象层是否存在
if (objGroup != NULL)
{
// 获取对象层中的所有对象
ValueVector arrGroup = objGroup->getObjects();
int n = arrGroup.size();

// 遍历对象层中的每个对象
for (int k = 0; k < n; ++k)
{
// 获取当前对象的信息
ValueMap objInfo = arrGroup.at(k).asValueMap();
// 获取对象的 x 坐标
float x = objInfo.at("x").asFloat();
// 获取对象的 y 坐标
float y = objInfo.at("y").asFloat();
// 获取对象的宽度
float width = objInfo.at("width").asFloat();
// 获取对象的高度
float height = objInfo.at("height").asFloat();

// 在这里可以添加处理对象信息的代码
// your code
}
}
}

以上代码实现了从tilemap中读取指定对象层的信息,并遍历该对象层中的每个对象,获取其坐标和尺寸信息。你可以在 // your code 处添加具体的处理逻辑。

作者信息

feifeila

feifeila

共发布了 570 篇文章