CCTileMapAtlas

#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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值