TMXMap学习总结

CCTMXTiledMap:

CCTMXTiledMap *pMap=CCTMXTiledMap::create("map.tmx");

CCTMXLayer *     pLayer=map->layerName("Layer0");

//获取ID

CCPoint pt=ccp(5,6);

int id=tileGIDAt(pt);

//获取对象

CCTMXObjectGroup* pGroup = pMap->objectGroupName("object0");//获取对象层

CCArray* pObjects = pGroup ->getObjects();//获取层上对象集合  

CCDictionary* pDict = NULL;  

CCObject* pObj = NULL;  

CCARRAY_FOREACH(pObjects, pObj)//遍历对象集合中的对象  

{  

   pDict = (CCDictionary*)pObj;

if(!pDict)  

  break;  

  const char* key = "playerBorn";//设定关键字,对应我们的"playerBorn"  

CCString *str = (CCString*)dict->objectForKey(key);  

if(str) 

  {  

  key = "x";  

  float x = ((CCString*)dict->objectForKey(key))->floatValue();//获取对应对象的x坐标  

key = "y";  

float y = ((CCString*)dict->objectForKey(key))->floatValue();//获取对应对象的y坐标  

  player->setPosition(ccp(x,y));//这里player是我们的主角sprite对象,设置坐标位置  

key = "hp";  

  int Hp = ((CCString*)dict->objectForKey(key))->intValue();//获得主角血量100  

player->setHp(Hp);  

  break;//找到过后,退出循环  

  }  


CCTMXTiledMap *m_pBubblesMap;//气泡砖块
CCTMXObjectGroup *m_pObjectGround;
CCDictionary *m_pPlayerPoint;

CCSprite *m_pPlayer;

m_pObjectGround=m_pBubblesMap->objectGroupNamed("Object");
m_pPlayerPoint=m_pObjectGround->objectNamed("Player");
float x=m_pPlayerPoint->valueForKey("x")->floatValue();
float y=m_pPlayerPoint->valueForKey("y")->floatValue();
m_pPlayer=CPlayer::create(pTex);
m_pPlayer->setPosition(ccp(x,y));


CCTileMapAtlas:

CCTileMapAtlas* map = CCTileMapAtlas::create(地图素材.png,地图数据.tga.,tile块宽,tile块高);

cocos2dx为了兼容性,所以保留了,现在cocos2dx不推荐使用此种方式拼图了..

tIDE是多国语言的免费软件,但是!竟然没有中文,关于它的介绍自己看就不说了,下面来创建第一张地图,用于我们的TD游戏。 你现在需要一张这样的tile图片,来做完地图的基本元件 在Explorer面板Map节点地下的Tile Sheets右键Add,然后浏览选择上面的或者你自己的tile文件。 OK弹出Tile Sheet Properties对话框设置一下Tile Size让Tile完美的切割。这里的值是60x60。 ok,然后会在Tile picher面板里就会出现一个个分割好的Tile。 有了这些tile的支持就可以在map上玩拼图了。在map Explorer面板下的Map节点的Layers上右键Add,在弹出的Layer Properties设置地图的大小Layer Size,因为我现在只打算做一个最简单的也就是一屏幕而且不能拖动所以这里设置14x8 (800/60 x 480/60),OK。 为了方便绘制在工具面板的右上角有一个显示网格的按钮,点下去它 右边的绘图工具栏上有一个很好使用的按钮区域绘制,它能把选择区域填充出当前选择的tile,下面就先在tile Picker选择一块浅色的草地区域绘制到整个地图。然后画上我们的路。 Save as为 tmx类型的文件 中间如果出现警告确定就好了 这里出现了最关键的一步,这里一定要选Base64(gzip compressed),ccx现在的版本还只支持这一种。 把生成的tmx文件以及tile图片加入我们的项目中。 这里可能需要调整一下tmx文件中的Image source的路径 在程序中显示TMX地图 先显示出来看看努力的效果,之后再慢慢完善。 把GameScreen构造函数中的说明Label删除,添加CCTMXTiledMap 代码很简单如下 private GameScreen() { CCTMXTiledMap tmxmap = CCTMXTiledMap.tiledMapWithTMXFile("Map/Level1"); addChild(tmxmap); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>