1 CCTMXObjectGroup的使用方法

为了取以下内容:

操作代码如下:

T27TileMapObject.h

#ifndef
__T27TileMapObject_H__

#define
__T27TileMapObject_H__

#include
"cocos2d.h"

#include
"cocos-ext.h"

#include
"TBack.h"

USING_NS_CC;

USING_NS_CC_EXT;

//格子地图对象层

class
T27TileMapObject :public
TBack

{

public:

CREATE_FUNC(T27TileMapObject);

bool
init();

static
CCScene* scene();

};

#endif

T27TileMapObject.cpp

#include
"T27TileMapObject.h"

CCScene*
T27TileMapObject::scene()

{

CCScene*
scene = CCScene::create();

T27TileMapObject *
layer = T27TileMapObject::create();

scene->addChild(layer);

return
scene;

}

bool
T27TileMapObject::init()

{

TBack::init();

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

addChild(map);

//这里的objects是MarioMap1.tmx中的一个key

CCTMXObjectGroup*
objGroup = map->objectGroupNamed("objects");

CCArray*
objs = objGroup->getObjects();

CCObject*
obj;

CCTexture2D*
texture = CCTextureCache::sharedTextureCache()->addImage("Mushroom0.png");

CCSpriteFrame*
frame = CCSpriteFrame::createWithTexture(

texture,
CCRectMake(0,0,texture->getContentSize().width / 4,texture->getContentSize().height));

CCARRAY_FOREACH(objs,
obj)

{

//通过下面的方式获得object中的参数信息

CCDictionary*
dict = (CCDictionary*)obj;

const
CCString* name =
dict->valueForKey("name");

const
CCString* type =
dict->valueForKey("type");

const
CCString* x = dict->valueForKey("x");

const
CCString* y = dict->valueForKey("y");

if (type->m_sString ==
"mushroom")

{

//创建一个蘑菇怪Mushroom0.png

CCSprite*
sprite = CCSprite::createWithSpriteFrame(frame);

map->addChild(sprite);

sprite->setPosition(ccp(x->intValue(),y->intValue()));

sprite->setZOrder(10000);

}

//如果object对象的名字是Birthday,那么将执行以下的操作

if (type->m_sString ==
"BirthPoint")

{

CCSprite*
sprite = CCSprite::createWithSpriteFrame(frame);

map->addChild(sprite);

sprite->setPosition(ccp(x->intValue(),y->intValue()
- 16));

//如果不设置这一句,马里奥会在山后

sprite->setZOrder(10000);

//设置锚点

sprite->setAnchorPoint(ccp(0,0));

}

}

return
true;

}

运行结果:

2 TileMapObject的使用的更多相关文章

随机推荐

  1. animation-timing-function的steps详解

    W3C里的定义: animation-timing-function 规定动画的速度曲线. 这个属性有很多取值, linear: 线性过渡.等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0) e ...

  2. Centos常用命令之:搜索

    在linux中,所有的文件都是以目录树的形式存在的.而每个发行版的文件存放之间又会有些差别. 这时候,如果我们想看某个命令或者文档的时候就必须先通过某种方式找到改文档的所在位置. 在linux中提供了 ...

  3. 修改Execl中sheet名的指定字符串为指定字符串

    Sub test() Dim sheet_count As Integer Dim sheet_name, new_sheet_name, old_str, new_str As String she ...

  4. [WC2006]水管局长数据加强版

    Description SC省MY市有着庞大的地下水管网络,嘟嘟是MY市的水管局长(就是管水管的啦),嘟嘟作为水管局长的工作就是:每天供水公司可能要将一定量的水从x处送往y处,嘟嘟需要为供水公司找到一 ...

  5. 【NOIP2016】【LCA】【树上差分】【史诗级难度】天天爱跑步

    学弟不是说要出丧题吗>>所以我就研究了1天lca又研究了1天tj然后研究了一天天天爱跑步,终于写了出来.(最后的平均用时为240ms...比学弟快了1倍...) 题意:给你颗树,然后有m个 ...

  6. Unix系统的文件目录项的内容是什么,这样处理的好处是什么?

    (Unix系统采用树型目录结构,而且目录中带有交叉勾链.每个目录表称为一个目录文件.一个目录文件是由目录项组成的.) 每个目录项包含16个字节,一个辅存磁盘块(512B)包含32个目录项.在目录项中, ...

  7. 触发事件trigger

    触发事件,在本例中,文档加载好之后,就触发dblclick双击事件,而不是通过去手动双击. <script src="http://how2j.cn/study/jquery.min. ...

  8. input中v-model和value不能同时调用时解决方案

    <input type="text" v-model="keyWord" value="请输入地名地址" > 当使用如上代码时, ...

  9. localeCompare() 方法实现中文的拼音排序

    google了很多次才发现在国外网站上有提示如何比较中文,原文地址:http://www.webdeveloper.com/forum/showthread.php?t=9365 前提:使用Unico ...

  10. 11.QT-布局管理器(Box,Grid,Form,Stacked)

    布局管理器简介 QT中提供了对界面组件进行布局管理的类,用于对界面组件进行管理, 能够自动排列窗口中的界面组件 窗口大小变化后,便会自动更新界面组件的大小. 布局管理器可以自定义,从而达到更加个性化界 ...