2 TileMapObject的使用

简介: 1 CCTMXObjectGroup的使用方法 为了取以下内容: 操作代码如下: T27TileMapObject.h #ifndef __T27TileMapObject_H__ #define __T27TileMapObject_H__   #include "cocos2d.h" #include "cocos-ext.h

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;

}

 

运行结果:


 

 

 

 

 

目录
相关文章
|
Java
SpringBoot实现文件上传接口
文件上传是很多业务场景需要实现的功能,今天就简单以Springboot框架为基础实现文件上传的接口。
2595 0
SpringBoot实现文件上传接口
|
5月前
|
JSON 前端开发 Java
Java新手指南:如何在Spring MVC中处理请求参数
处理Spring MVC中的请求参数是通过控制器方法中的注解来完成的。这些注解包括 `@RequestParam`, `@PathVariable`, `@ModelAttribute`, `@RequestBody`, `@RequestHeader`, `@Valid`, 和 `@RequestMapping`。使用这些注解可以轻松从HTTP请求中提取所需信息,例如URL参数、表单数据或者JSON请求体,并将其转换成Java对象以供进一步处理。
474 17
|
Java Spring
SpringBoot入门 - 定制自己的Banner
SpringBoot入门 - 定制自己的Banner
214 2
SpringBoot入门 - 定制自己的Banner
|
12月前
|
消息中间件 存储 中间件
说说MQ在你项目中的应用(二)商品支付
本文总结了消息队列(MQ)在支付订单业务中的应用,重点分析了RabbitMQ的优势。通过异步处理、系统解耦和流量削峰等功能,RabbitMQ确保了支付流程的高效与稳定。具体场景包括用户下单、支付请求、商品生产和物流配送等环节。相比Kafka,RabbitMQ在低吞吐量、高实时性需求下表现更优,提供了更低延迟和更高的可靠性。
367 0
|
机器学习/深度学习 算法 搜索推荐
多任务学习模型之DBMTL介绍与实现
本文介绍的是阿里在2019年发表的多任务学习算法。该模型显示地建模目标间的贝叶斯网络因果关系,整合建模了特征和多个目标之间的复杂因果关系网络,省去了一般MTL模型中较强的独立假设。由于不对目标分布做任何特定假设,使得它能够比较自然地推广到任意形式的目标上。
|
机器学习/深度学习 并行计算 算法
ICASSP 2023论文模型开源|语音分离Mossformer
人类能在复杂的多人说话环境中轻易地分离干扰声音,选择性聆听感兴趣的主讲人说话。但这对机器却不容易,如何构建一个能够媲美人类听觉系统的自动化系统颇具挑战性。 本文将详细解读ICASSP2023本届会议收录的单通道语音分离模型Mossformer论文,以及如何基于开发者自有数据进行该模型的调优训练。
1001 0
|
安全 数据安全/隐私保护
阿里云企业实名认证和个人实名认证区别对比
2023阿里云企业实名认证和个人实名认证区别对比,阿里云账号根据实名认证主体分为个人认证和企业认证两种,企业实名认证和个人实名认证有什么区别?区别大了,如果公司的阿里云账号使用员工的个人身份进行实名认证,一旦员工离职,公司账号就找不回来了。阿里云百科来详细说下阿里云账号个人实名认证和企业实名认证的区别:
515 0
阿里云企业实名认证和个人实名认证区别对比
|
云安全 安全 数据安全/隐私保护
阿里云成为全球唯一完成德国C5云安全基础附加标准审计云服务商 数据安全获“最严谨”标准认可
12月14日,德国联邦信息安全局宣布阿里云完成德国C5云安全(Cloud Computing Compliance Controls Catalog)标准评审。 这样,阿里云成为全球首家,也是唯一一家审计报告覆盖所有C5标准基础要求和附加要求的云服务提供商。
|
存储 并行计算 Cloud Native
PolarDB 开源版 使用TimescaleDB 实现时序数据高速写入、压缩、实时聚合计算、自动老化等
PolarDB 开源版 使用TimescaleDB 实现时序数据高速写入、压缩、实时聚合计算、自动老化等
3074 3
|
安全 C语言 C++
Qt: 一个适用于Qt的httpserver 开源库介绍
Qt: 一个适用于Qt的httpserver 开源库介绍
1290 0