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. Python基础学习(第一周)

    Python是一门什么语言 编译型和解释型 通俗来讲,编译型就是一次性把所有程序写的代码都转换成机器可以识别的语言(机器语言),即可执行文件.exe: 解释型就是程序每执行到某一条指令,则会有有个称之 ...

  2. [NOI 2007]社交网络

    Description 在社交网络(socialnetwork)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题.在一个社交圈子里有n个人,人与人之间有不同程度的关系.我们将这个 ...

  3. [HNOI 2004]L语言

    Description 标点符号的出现晚于文字的出现,所以以前的语言都是没有标点的.现在你要处理的就是一段没有标点的文章. 一段文章T是由若干小写字母构成.一个单词W也是由若干小写字母构成.一个字典D ...

  4. poj 1113 凸包周长

    Wall Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 33888   Accepted: 11544 Descriptio ...

  5. 【Miller-Rabin随机判素数算法】

    实用性介绍: #include<bits/stdc++.h> #define go(i,a,b) for(int i=a;i<=b;i++) #define T 5 #define ...

  6. 例 7-10 uva12212(迭代加深搜索)

    题意:对于一段数字,每次可以剪切一段连续的自然数,粘贴到任意部分,使其变成升序 思路: 考虑的是进行搜索,深搜并不能保证是最短,广搜感觉每层的情况太多. 迭代加深:枚举搜索深度,然后进行深搜. 这种方 ...

  7. java开发小技巧

    链接地址:http://www.cnblogs.com/zkh101/p/8083368.html 人脸识别地址:http://blog.csdn.net/gitchat/article/detail ...

  8. 如何理解Spring IOC

    Spring IOC 思维导图 要了解控制反转( Inversion of Control ), 我觉得有必要先了解软件设计的一个重要思想:依赖倒置原则(Dependency Inversion Pr ...

  9. 利用 Win32 启动和检测 UWP App 的方法

    一种启动和检测 UWP 应用的方法 背景 我们发布过多款 UWP 平台的同类型 App ,最近有一个需求:用传统 Win32 程序启动我们的 UWP 程序.因为我们的每一个UWP App在客户机器上都 ...

  10. Vue实践经验

    多考虑应变 如果模版中绑定了 obj.xx 时,需要注意 obj 是否是异步数据,默认值是否为 null.安全起见,可在组件最外层加 v-if 判断. <template> <div ...