【Cocos2d-X开发学习笔记】第27期:游戏背景之贴图地图类(CCTileMapAtlas)的使用

时间:2023-03-09 01:14:59
【Cocos2d-X开发学习笔记】第27期:游戏背景之贴图地图类(CCTileMapAtlas)的使用

本系列学习教程使用的是cocos2d-x-2.1.4(最新版为3.0alpha0-pre) ,PC开发环境Windows7,C++开发环境VS2010

一、贴图地图类CCTileMapAtlas

除了利用CCTMXTiledMap类创建地图对象外,还有一种创建地图的方法,就是使用贴图地图类

CCTileMapAtlas。CCTileMapAtlas类的继承关系如下图所示。

【Cocos2d-X开发学习笔记】第27期:游戏背景之贴图地图类(CCTileMapAtlas)的使用

CCTileMapAtlas类的常用函数见下图所示。

【Cocos2d-X开发学习笔记】第27期:游戏背景之贴图地图类(CCTileMapAtlas)的使用

二、项目实例


1、首先新建Cocos2D-X项目,取名为“MyCCTileMapAtlas”,然后在HelloWorldScene.cpp文件的init函数中添加如下代码。

bool HelloWorld::init()
{
bool bRet = false;
do
{
CC_BREAK_IF(! CCLayer::init()); CCTileMapAtlas* map = CCTileMapAtlas::create("tiles.png", "levelmap.tga", 16, 16);
// Convert it to "alias" (GL_LINEAR filtering)
map->getTexture()->setAntiAliasTexParameters(); // If you are not going to use the Map, you can free it now
// NEW since v0.7
map->releaseMap(); addChild(map, 0, 1); map->setAnchorPoint( ccp(0, 0.5f) ); CCScaleBy *scale = CCScaleBy::create(4, 0.8f);
CCActionInterval *scaleBack = scale->reverse(); CCSequence* seq = CCSequence::create(scale, scaleBack, NULL); map->runAction(CCRepeatForever::create(seq)); bRet = true;
} while (0); return bRet;
}

定义 CCTileMapAtlas需要两个参数,第一个参数是类似于之前使用的地图图素集的图片路径,第二个参数是TGR

图片的路径。TGR类似于地图图素排列的数据,也可以由相应的编辑器编辑。但是,现在使用Tiled编辑器更加方便,

而且贴图地图类的功能也比Tiled编辑器的少,所以目前这种方法不被推荐使用,这里我们只要理解这种方法就可以

了。

2、实例效果图

【Cocos2d-X开发学习笔记】第27期:游戏背景之贴图地图类(CCTileMapAtlas)的使用

源码下载地址