TiledMap使用笔记
来源:互联网 发布:python 打开cmd窗口 编辑:程序博客网 时间:2024/05/29 04:06
(注意TiileMap中每一层只能使用一种图块)
(TiledMap中的坐标是以左上角为原点,右边是x周,下边为y轴,但是在获取对象在地图中的坐标的时候,会自动转成以左下角为原点的坐标系)
[plain]
- static CCTMXTiledMap * create (const char *tmxFile);
根据一个TMX文件以及资源路径,来创建一个背景地图
[plain]- static CCTMXTiledMap * create (const char *tmxString, const char *resourcePath);
CCTMXTiledMap的成员函数:
[plain]- //得到地图背景的尺寸
- virtual const CCSize & getMapSize (void)
- //设置地图背景的尺寸
- virtual void setMapSize (const CCSize &var)
- //得到地图背景中砖块元素的尺寸
- virtual const CCSize & getTileSize (void)
- //设置地图背景中砖块元素的尺寸
- virtual void setTileSize (const CCSize &var)
- //获得物体层中所有对象
- virtual CCArray * getObjectGroups (void)
- //设置物体层的容器
- virtual void setObjectGroups (CCArray *var)
- //获得地图的属性
- virtual CCDictionary * getProperties (void)
- //设置地图属性
- virtual void setProperties (CCDictionary *var)
- //构造函数
- CCTMXTiledMap ()
- //析构函数
- virtual ~CCTMXTiledMap ()
- //一个初始化函数
- bool initWithTMXFile (const char *tmxFile)
- //另一个初始化函数
- bool initWithXML (const char *tmxString, const char *resourcePath)
- //根据图层的名字,来获得图层
- CCTMXLayer * layerNamed (const char *layerName)
- //根据物体层的名字,来获得物体层
- CCTMXObjectGroup * objectGroupNamed (const char *groupName)
- //根据属性的名字,来获得数值
- CCString * propertyNamed (const char *propertyName)
- //根据GID,获得属性字典
- CCDictionary * propertiesForGID (int GID)
Cocos2d-x 瓦片地图图层类CCTMXLayer
这篇文章为大家介绍瓦片地图的图层:-x中的图层分为2种,一个为砖块拼接的图层,另一个是物体层。我们这篇将给大家介绍2种图层的公有方法:
代码如下: [plain]- //返回图层尺寸的大小
- virtual const CCSize & getLayerSize (void)
- //设置图层尺寸的大小
- virtual void setLayerSize (const CCSize &var)
- //返回砖块尺寸的大小
- virtual const CCSize & getMapTileSize (void)
- //设置砖块尺寸的大小
- virtual void setMapTileSize (const CCSize &var)
- //返回砖块属性信息
- virtual CCTMXTilesetInfo * getTileSet (void)
- //设置砖块属性信息
- virtual void setTileSet (CCTMXTilesetInfo *var)
- //返回图层属性字典(包含了所有属性)
- virtual CCDictionary * getProperties (void)
- //设置图层属性
- virtual void setProperties (CCDictionary *var)
- //构造函数
- CCTMXLayer ()
- //析构函数
- virtual ~CCTMXLayer ()
- //初始化函数,参数为:砖块配置对象,图形配置对象,地图配置对象
- bool initWithTilesetInfo (CCTMXTilesetInfo *tilesetInfo, CCTMXLayerInfo *layerInfo, CCTMXMapInfo *mapInfo)
- //释放图层中砖块的拼接信息
- void releaseMap ()
- //返回指定位置的砖块对象
- CCSprite * tileAt (const CCPoint &tileCoordinate)
- //返回指定位置砖块对象的ID
- unsigned int tileGIDAt (const CCPoint &tileCoordinate)
- //返回指定位置砖块对象的ID
- unsigned int tileGIDAt (const CCPoint &tileCoordinate, ccTMXTileFlags *flags)
- //设置指定位置砖块对象的ID
- void setTileGID (unsigned int gid, const CCPoint &tileCoordinate)
- //设置指定位置砖块对象的ID
- void setTileGID (unsigned int gid, const CCPoint &tileCoordinate, ccTMXTileFlags flags)
- //移除指定位置砖块对象
- void removeTileAt (const CCPoint &tileCoordinate)
- //返回指定坐标的地图位置
- CCPoint positionAt (const CCPoint &tileCoordinate)
- //返回指定属性数值
- CCString * propertyNamed (const char *propertyName)
- //创建图层中的砖块
- void setupTiles ()
- //得到图层的名字
- const char * getLayerName ()
- //设置图层的名字
- void setLayerName (const char *layerName)
- static CCTMXTiledMap * create (const char *tmxString, const char *resourcePath);
- TMXTiledMap *openMap = TMXTiledMap::create("hush_map.tmx");
openMap->setAnchorPoint(Point(0,0));
//openMap->getMapSize().width瓦片地图横向有多少个瓦片
//openMap->getTileSize().width每一个瓦片的宽度
log("%f", openMap->getTileSize().width*openMap->getMapSize().width);
// openMap->setPosition(Point(0,0));
//根据对象名字找对象
/*TMXObjectGroup *objects = openMap->getObjectGroup("Objects");
auto player = objects->getObject("player");
int player_x = player["x"].asInt();
int player_y = player["y"].asInt();
auto role = Sprite::create("monster.png");
role->setPosition(Point(player_x,player_y));
role->setScale(0.01);
auto role_action = ScaleTo::create(2.0f,1);
role->runAction(role_action);
this->addChild(role,5);*/
//openMap->setPosition(Point(visibleSize.width/2,visibleSize.height/2));
//遍历地图中的对象
//获取对象组
TMXObjectGroup *objects = openMap->getObjectGroup("Objects");
ValueVector objectsValue = objects->getObjects();
float x, y, w, h;
for each (auto object in objectsValue)
{
ValueMap valueMap = object.asValueMap();
x = valueMap.at("x").asFloat();
y = valueMap.at("y").asFloat();
w= valueMap.at("width").asFloat();
h = valueMap.at("height").asFloat();
log("x=%f,y=%f,w=%f,h=%f",x,y,w,h);
}
this->addChild(openMap);
0 0
- TiledMap使用笔记
- TiledMap 使用
- tiledmap瓦片地图使用
- TiledMap地图的使用
- cocos2dx使用tiledmap
- Tiledmap基本使用教程
- Egret中使用TiledMap
- TiledMap的使用
- tiledmap瓦片地图使用2
- cocos2d-x tiledMap CCTMXTiledMap的使用
- cocos2d-x 学习笔记——瓦片地图TiledMap
- cocos2dx使用TiledMap创建斜45度地图场景
- cocos2dx使用TiledMap创建斜45度地图场景
- 解决Cocos2d-js 在使用 TiledMap时的黑线问题
- Cocos2dx杂记:推小球,box2d与TiledMap的使用
- Unity2D使用Tiled2Unity导入带碰撞体的TiledMap地图
- Unity2D使用Tiled2Unity读取TiledMap中的自定义属性
- cocos2dx TiledMap
- 图片相似度处理 - use PIL库
- js获取url内容
- Unity3D Assetbundle的原理
- Xcode6的新特性、
- codforeces 527D 贪心
- TiledMap使用笔记
- 让企业零技术门槛做电商
- 通用Adapter
- java web.xml配置servlet
- elasticsearch.yml-elasticsearch配置文件
- sun.misc.BASE64Encoder找不到jar包的解决方法
- Android平台调用Web Service实例解析
- Cocos2d-x 3.x plist+png 做动画
- Dom4j解析xml