CCTileMapAtlas

来源:互联网 发布:excel怎么复制一列数据 编辑:程序博客网 时间:2024/06/06 05:05

#ifndef __CCTILE_MAP_ATLAS__

#define __CCTILE_MAP_ATLAS__



#include "base_nodes/CCAtlasNode.h"


NS_CC_BEGIN


struct sImageTGA;

class CCDictionary;


/**

 * @addtogroup tilemap_parallax_nodes

 * @{

 */


/** @brief CCTileMapAtlas is a subclass of CCAtlasNode.


It knows how to render a map based of tiles.

The tiles must be in a .PNG format while the map must be a .TGA file.


For more information regarding the format, please see this post:

http://www.cocos2d-iphone.org/archives/27


All features from CCAtlasNode are valid in CCTileMapAtlas


IMPORTANT:

This class is deprecated. It is maintained for compatibility reasons only.

You SHOULD not use this class.

Instead, use the newer TMX file format: CCTMXTiledMap

*/

class CC_DLL CCTileMapAtlas : public CCAtlasNode 

{

    /** TileMap info */

    CC_PROPERTY(struct sImageTGA*, m_pTGAInfo, TGAInfo);

public:

    CCTileMapAtlas();

    virtual ~CCTileMapAtlas();

    

    /** creates a CCTileMap with a tile file (atlas) with a map file and the width and height of each tile in points.

    The tile file will be loaded using the TextureMgr.

    */

    static CCTileMapAtlas * create(const char *tile, const char *mapFile, int tileWidth, int tileHeight);

   

    /** initializes a CCTileMap with a tile file (atlas) with a map file and the width and height of each tile in points.

    The file will be loaded using the TextureMgr.

    */

    bool initWithTileFile(const char *tile, const char *mapFile, int tileWidth, int tileHeight);

    /** returns a tile from position x,y.

    For the moment only channel R is used

    */

    ccColor3B tileAt(const CCPoint& position);

    /** sets a tile at position x,y.

    For the moment only channel R is used

    */

    void setTile(const ccColor3B& tile, const CCPoint& position);

    /** dealloc the map from memory */

    void releaseMap();

private:

    void loadTGAfile(const char *file);

    void calculateItemsToRender();

    void updateAtlasValueAt(const CCPoint& pos, const ccColor3B& value, unsigned int index);

    void updateAtlasValues();


protected:

    //! x,y to atlas dictionary

    CCDictionary* m_pPosToAtlasIndex;

    //! numbers of tiles to render

    int m_nItemsToRender;

};


// end of tilemap_parallax_nodes group

/// @}


NS_CC_END


#endif //__CCTILE_MAP_ATLAS__


0 0
原创粉丝点击