COCOS-Tiled地图类

COCOS-Tiled地图类,第1张

概述一、TMXTiledMap类 cocos2dx提供了TMXTiledMap类来管理tiled瓦片地图,主要包括地图层、瓦片信息等,其主要方法、属性如下: class CC_DLL TMXTiledMap : public Node{ // 使用.tmx格式的文件创建瓦片地图 static TMXTiledMap* create(const std::string& tmxFil

一、TMXTiledMap类

cocos2dx提供了TMXTiledMap类来管理tiled瓦片地图,主要包括地图层、瓦片信息等,其主要方法、属性如下:

class CC_DLL TMXTiledMap : public Node{    // 使用.tmx格式的文件创建瓦片地图    static TMXTiledMaP* create(const std::string& tmxfile);  /** * 获取瓦片地图的属性信息 **/    // 获取瓦片地图的指定名称的属性值    Value getProperty(const std::string& propertyname) const;    // 获取瓦片地图的所有属性(键-值对)    voID setPropertIEs(const ValueMap& propertIEs); // 可以修改属性    ValueMap& getPropertIEs();      // 获取瓦片地图(单位:瓦片数量)    voID setMapSize(const Size& mapSize);    Size& getMapSize() const;    // 获取单个瓦片的尺寸(单位:像素)    voID setTileSize(const Size& tileSize);    Size& getTileSize() const;      // 通过GID获取图块的属性,返回Value字典    // 其实返回的是:ValueMap,即(键-值对)    Value getPropertIEsForGID(int GID) const;  /** * 获取地图层、对象层 **/    // 获取指定名称的地图层 TMXLayer    TMXLayer* getLayer(const std::string& layername) const;      // 获取指定名称的对象层 TMXObjectGroup    TMXObjectGrouP* getobjectGroup(const std::string& groupname) const;    // 获取瓦片地图的所有对象层,返回对象数组 Vector<TMXObjectGrouP*>    voID setobjectGroups(const Vector<TMXObjectGrouP*>& groups);    Vector<TMXObjectGrouP*>& getobjectGroups() const;	    // 瓦片地图的尺寸,以瓦片数量为单位    Size _mapSize;    // 瓦片的尺寸,以瓦片像素为单位    Size _tileSize;};

二、TMXLayer类

TMXLayer类管理tiled的地图层,包含该地图层中的每个瓦片的信息,而每一个瓦片都被表示成精灵,其主要方法、属性如下:

class CC_DLL TMXLayer : public SpriteBatchNode {/** * 获取地图层的属性信息 **/      // 获取地图层的名字    voID setLayername(const std::string& layername); // 可以重新设置地图层名字    std::string& getLayername();      // 获取地图层的propertyname属性值    Value getProperty(const std::string& propertyname) const;    // 获取地图层的所有自定义属性字典(键-值对)    voID setPropertIEs(const ValueMap& propertIEs);    ValueMap& getPropertIEs();      // 获取地图层尺寸,一般等于瓦片地图的尺寸(单位:瓦片数量)    voID setLayerSize(const Size& size);    Size& getLayerSize() const;    // 设置瓦片尺寸的大小,一般与瓦片地图的瓦片尺寸是一样的(单位:像素)    voID setMapTileSize(const Size& size);    Size& getMapTileSize() const;  /** * 对地图层的瓦片进行 *** 作 **/    // 获取指定tile坐标的瓦片(Sprite)    Sprite* getTileAt(const Vec2& tileCoordinate);      // 可通过调用如下方法对瓦片精灵进行删除:    voID removeTileAt(const Vec2& tileCoordinate);    voID removeChild(Node* child,bool cleanup) overrIDe;      // 获取指定tile坐标的瓦片对应的OpenGL坐标位置    Vec2 getpositionAt(const Vec2& tileCoordinate);      // 设置指定tile坐标的瓦片,将其图片变为GID的图块。    voID setTileGID(uint32_t gID,const Vec2& tileCoordinate);      // 获取指定tile坐标的瓦片所使用的图块的GID。    uint32_t getTileGIDAt(const Vec2& tileCoordinate);	    // 地图层的名字    std::string _layername;    // 地图层的尺寸,以瓦片数量为单位    Size _layerSize;    // 地图层的瓦片的尺寸,以瓦片像素为单位    Size _mapTileSize;};

三、TMXObjectGroup类

TMXObjectGroup类用于管理tiled地图中特殊的地图层,即对象层,包括所有的对象及其所有的属性,而每一个对象的所有属性被存储为ValueMap键-值对映射,其主要方法、属性如下:

class CC_DLL TMXObjectGroup : public Ref{/** * 获取对象层的属性信息 **/      // 获取对象层的名称    voID setGroupname(const std::string& groupname); // 可以重新设置对象层名称    std::string& getGroupname();      // 获取对象层的propertyname属性值    Value getProperty(const std::string& propertyname) const;        // 获取对象层所有属性(键-值对)    voID setPropertIEs(const ValueMap& propertIEs);    ValueMap& getPropertIEs();      // 获取对象层指定的objectname对象,其所有属性被存储为ValueMap(键-值对)    ValueMap getobject(const std::string& objectname) const;    // 获取对象层的所有对象    voID setobjects(const ValueVector& objects);    ValueVector& getobjects();		// 对象层的名称    std::string _groupname;	// 所有的对象    ValueVector _objects;};
总结

以上是内存溢出为你收集整理的COCOS-Tiled地图类全部内容,希望文章能够帮你解决COCOS-Tiled地图类所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1050161.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存