cocos2d-x节点(CCTMXTiledMap.h)API

来源:互联网 发布:md655ll a支持什么网络 编辑:程序博客网 时间:2024/05/17 05:17

本文来自http://blog.csdn.net/runaying ,引用必须注明出处!

cocos2d-x节点(CCTMXTiledMap.h)API

温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记

CCTMXXMLParser(//cocos2d-x-3.0alpha0/cocos2dx/tilemap_parallax_nodes/CCTMXXMLParser.h)类差不多都是解析地图

//cocos2d-x-3.0alpha0/cocos2dx/tilemap_parallax_nodes///和 CCTMXXMLParser(//cocos2d-x-3.0alpha0/cocos2dx/tilemap_parallax_nodes/CCTMXXMLParser.h) 类差不多都是解析地图#ifndef __CCTMX_TILE_MAP_H__#define __CCTMX_TILE_MAP_H__#include "base_nodes/CCNode.h"#include "CCTMXObjectGroup.h"NS_CC_BEGINclass TMXObjectGroup;class TMXLayer;class TMXLayerInfo;class TMXTilesetInfo;class TMXMapInfo;/** * @addtogroup tilemap_parallax_nodes * @{ *//** TMX地图可能的方向 */enum{    /** 正交方向 */    TMXOrientationOrtho,    /** 六角方向 */    TMXOrientationHex,    /** 等距方向 */    TMXOrientationIso,};/** @brief TMXTiledMap 知道如何解析和渲染TMX地图它增加了的 TMX tiled 的地图所使用的格式http://www.mapeditor.org它支持等距,六角形和正交瓷砖。 tiles.它还支持对象组,对象和属性。特点:- 把每个 tile 当作 Sprite 对待-  sprites 根据需求创建. 只有当你调用 "layer->tileAt(position)" 它们才会被创建- 每个 tile 都可以 rotated / moved / scaled / tinted / "opaqued", 因为每个 tile 都是一个 Sprite-  在运行时可以 added/removed Tiles- teles 的 z-order 可以在运行时修改- 每个 tile 都有一个 anchorPoint (0,0)        //锚点- TMXTileMap 的 anchorPoint 是 (0,0)        //锚点-  TMX layers will be added as a child- The TMX layers will be aliased by default     //别名- 地形设置的图像将使用 TextureCache 载入- 每个 tile 都将有一个独特的 tag- 每个 tile 都将有一个独特的 z value. top-left: z=1, bottom-right: z=max z- 每个对象组将被视为MutableArray- Object类包含字典中的所有属性- 可以分配到的 the Map, Layer, Object Group, and Object 属性限制:- 每一个 layer 只支持一种地形设置.- 不支持嵌入式图像- 它只支持XML格式(JSON格式不支持)技术说明:每一个 layer 都使用一个 TMXLayer (SpriteBatchNode的子类)创建. 如果你有 5 个 layers, 那么会有 5 个 TMXLayer 被创建,除非 layer 不可见,在这种情况下,该 layer 将不被创建你可以在运行时通过下面的方式获得 layers (TMXLayer objects) :- map->getChildByTag(tag_number);  // 0=1st layer, 1=2nd layer, 2=3rd layer, etc...- map->getLayer(name_of_the_layer);每一个 object group 都适用一个 TMXObjectGroup 他是 MutableArray 的子类.你可以在运行时通过下面的方式获得 object groups:- map->getObjectGroup(name_of_the_object_group);每一个对象都是一个 TMXObject.每个属性都使用 键/值 存储在一个MutableDictionary 里面你可以在运行时通过下面方式获得属性:map->getProperty(name_of_the_property);layer->getProperty(name_of_the_property);objectGroup->getProperty(name_of_the_property);object->getProperty(name_of_the_property);@since v0.8.1*/class CC_DLL TMXTiledMap : public Node{public:    /**     * @js ctor     */    TMXTiledMap();    /**     * @js NA     * @lua NA     */    virtual ~TMXTiledMap();    /** 使用 TMX文件 创建一个 TMX Tiled Map .*/    static TMXTiledMap* create(const char *tmxFile);    /** 使用 TML格式的 XML 字符串,TMX资源路径 初始化一个 TMX Tiled Map */    static TMXTiledMap* createWithXML(const char* tmxString, const char* resourcePath);    /** 使用 TMX文件 初始化一个 TMX Tiled Map  */    bool initWithTMXFile(const char *tmxFile);    /** 使用 TML格式的 XML 字符串,TMX资源路径 初始化一个 TMX Tiled Map */    bool initWithXML(const char* tmxString, const char* resourcePath);    /** return the TMXLayer for the specific(特定的) layer */    TMXLayer* getLayer(const char *layerName) const;    /**     * @js NA     * @lua NA     */    CC_DEPRECATED_ATTRIBUTE TMXLayer* layerNamed(const char *layerName) const { return getLayer(layerName); };    /** return the TMXObjectGroup for the specific(特定) group */    TMXObjectGroup* getObjectGroup(const char *groupName) const;    /**     * @js NA     * @lua NA     */    CC_DEPRECATED_ATTRIBUTE TMXObjectGroup* objectGroupNamed(const char *groupName) const { return getObjectGroup(groupName); };    /** return 特定的属性名的值 */    String *getProperty(const char *propertyName) const;    /**     * @js NA     * @lua NA     */    CC_DEPRECATED_ATTRIBUTE String *propertyNamed(const char *propertyName) const { return getProperty(propertyName); };    /** return tile 属性字典的 GID */    Dictionary* getPropertiesForGID(int GID) const;    CC_DEPRECATED_ATTRIBUTE Dictionary* propertiesForGID(int GID) const { return getPropertiesForGID(GID); };    /** map's 的尺寸属性使用 tiles 测量 */    inline const Size& getMapSize() const { return _mapSize; };    inline void setMapSize(const Size& mapSize) { _mapSize = mapSize; };    /** tiles's 的尺寸属性使用 pixels(像素)测量 */    inline const Size& getTileSize() const { return _tileSize; };    inline void setTileSize(const Size& tileSize) { _tileSize = tileSize; };    /** 地图方向 */    inline int getMapOrientation() const { return _mapOrientation; };    inline void setMapOrientation(int mapOrientation) { _mapOrientation = mapOrientation; };    /** object groups */    inline Array* getObjectGroups() const { return _objectGroups; };    inline void setObjectGroups(Array* groups) {        CC_SAFE_RETAIN(groups);        CC_SAFE_RELEASE(_objectGroups);        _objectGroups = groups;    };        /** properties */    inline Dictionary* getProperties() const { return _properties; };    inline void setProperties(Dictionary* properties) {        CC_SAFE_RETAIN(properties);        CC_SAFE_RELEASE(_properties);        _properties = properties;    };    private:    TMXLayer * parseLayer(TMXLayerInfo *layerInfo, TMXMapInfo *mapInfo);    TMXTilesetInfo * tilesetForLayer(TMXLayerInfo *layerInfo, TMXMapInfo *mapInfo);    void buildWithMapInfo(TMXMapInfo* mapInfo);protected:    /**  map's 的尺寸属性使用 tiles 测量 */    Size _mapSize;    /**  tiles's 的尺寸属性使用 pixels(像素)测量 */    Size _tileSize;    /** 地图方向 */    int _mapOrientation;    /** object groups */    Array* _objectGroups;    /** properties */    Dictionary* _properties;        //! tile properties    Dictionary* _tileProperties;};// end of tilemap_parallax_nodes group/// @}NS_CC_END#endif //__CCTMX_TILE_MAP_H__


原创粉丝点击