TiledMap使用笔记
(注意TiileMap中每一层只能使用一种图块)
(TiledMap中的坐标是以左上角为原点,右边是x周,下边为y轴,但是在获取对象在地图中的坐标的时候,会自动转成以左下角为原点的坐标系)
[plain]
- static CCTMXTiledMap * create (const char *tmxFile);
根据一个TMX文件以及资源路径,来创建一个背景地图
[plain]
- static CCTMXTiledMap * create (const char *tmxString, const char *resourcePath);
CCTMXTiledMap的成员函数:
[plain]- //得到地图背景的尺寸
- virtual const CCSize & getMapSize (void)
- //设置地图背景的尺寸
- virtual void setMapSize (const CCSize &var)
- //得到地图背景中砖块元素的尺寸
- virtual const CCSize & getTileSize (void)
- //设置地图背景中砖块元素的尺寸
- virtual void setTileSize (const CCSize &var)
- //获得物体层中所有对象
- virtual CCArray * getObjectGroups (void)
- //设置物体层的容器
- virtual void setObjectGroups (CCArray *var)
- //获得地图的属性
- virtual CCDictionary * getProperties (void)
- //设置地图属性
- virtual void setProperties (CCDictionary *var)
- //构造函数
- CCTMXTiledMap ()
- //析构函数
- virtual ~CCTMXTiledMap ()
- //一个初始化函数
- bool initWithTMXFile (const char *tmxFile)
- //另一个初始化函数
- bool initWithXML (const char *tmxString, const char *resourcePath)
- //根据图层的名字,来获得图层
- CCTMXLayer * layerNamed (const char *layerName)
- //根据物体层的名字,来获得物体层
- CCTMXObjectGroup * objectGroupNamed (const char *groupName)
- //根据属性的名字,来获得数值
- CCString * propertyNamed (const char *propertyName)
- //根据GID,获得属性字典
- CCDictionary * propertiesForGID (int GID)
Cocos2d-x 瓦片地图图层类CCTMXLayer
这篇文章为大家介绍瓦片地图的图层:-x中的图层分为2种,一个为砖块拼接的图层,另一个是物体层。我们这篇将给大家介绍2种图层的公有方法:
代码如下: [plain]- //返回图层尺寸的大小
- virtual const CCSize & getLayerSize (void)
- //设置图层尺寸的大小
- virtual void setLayerSize (const CCSize &var)
- //返回砖块尺寸的大小
- virtual const CCSize & getMapTileSize (void)
- //设置砖块尺寸的大小
- virtual void setMapTileSize (const CCSize &var)
- //返回砖块属性信息
- virtual CCTMXTilesetInfo * getTileSet (void)
- //设置砖块属性信息
- virtual void setTileSet (CCTMXTilesetInfo *var)
- //返回图层属性字典(包含了所有属性)
- virtual CCDictionary * getProperties (void)
- //设置图层属性
- virtual void setProperties (CCDictionary *var)
- //构造函数
- CCTMXLayer ()
- //析构函数
- virtual ~CCTMXLayer ()
- //初始化函数,参数为:砖块配置对象,图形配置对象,地图配置对象
- bool initWithTilesetInfo (CCTMXTilesetInfo *tilesetInfo, CCTMXLayerInfo *layerInfo, CCTMXMapInfo *mapInfo)
- //释放图层中砖块的拼接信息
- void releaseMap ()
- //返回指定位置的砖块对象
- CCSprite * tileAt (const CCPoint &tileCoordinate)
- //返回指定位置砖块对象的ID
- unsigned int tileGIDAt (const CCPoint &tileCoordinate)
- //返回指定位置砖块对象的ID
- unsigned int tileGIDAt (const CCPoint &tileCoordinate, ccTMXTileFlags *flags)
- //设置指定位置砖块对象的ID
- void setTileGID (unsigned int gid, const CCPoint &tileCoordinate)
- //设置指定位置砖块对象的ID
- void setTileGID (unsigned int gid, const CCPoint &tileCoordinate, ccTMXTileFlags flags)
- //移除指定位置砖块对象
- void removeTileAt (const CCPoint &tileCoordinate)
- //返回指定坐标的地图位置
- CCPoint positionAt (const CCPoint &tileCoordinate)
- //返回指定属性数值
- CCString * propertyNamed (const char *propertyName)
- //创建图层中的砖块
- void setupTiles ()
- //得到图层的名字
- const char * getLayerName ()
- //设置图层的名字
- void setLayerName (const char *layerName)
- static CCTMXTiledMap * create (const char *tmxString, const char *resourcePath);
- TMXTiledMap *openMap = TMXTiledMap::create("hush_map.tmx");
openMap->setAnchorPoint(Point(0,0));
//openMap->getMapSize().width瓦片地图横向有多少个瓦片
//openMap->getTileSize().width每一个瓦片的宽度
log("%f", openMap->getTileSize().width*openMap->getMapSize().width);
// openMap->setPosition(Point(0,0));
//根据对象名字找对象
/*TMXObjectGroup *objects = openMap->getObjectGroup("Objects");
auto player = objects->getObject("player");
int player_x = player["x"].asInt();
int player_y = player["y"].asInt();
auto role = Sprite::create("monster.png");
role->setPosition(Point(player_x,player_y));
role->setScale(0.01);
auto role_action = ScaleTo::create(2.0f,1);
role->runAction(role_action);
this->addChild(role,5);*///openMap->setPosition(Point(visibleSize.width/2,visibleSize.height/2));
//遍历地图中的对象
//获取对象组
TMXObjectGroup *objects = openMap->getObjectGroup("Objects");
ValueVector objectsValue = objects->getObjects();
float x, y, w, h;
for each (auto object in objectsValue)
{
ValueMap valueMap = object.asValueMap();x = valueMap.at("x").asFloat();
y = valueMap.at("y").asFloat();
w= valueMap.at("width").asFloat();
h = valueMap.at("height").asFloat();
log("x=%f,y=%f,w=%f,h=%f",x,y,w,h);
}this->addChild(openMap);
TiledMap使用笔记相关推荐
- c++ qt工作量和移动端相比_学习笔记 --- QT
0.前序 别问,问就是选修... 那毕竟3dMax动画那边结课了,我怎么就不能再发一篇笔记(极其嚣张) QT其实会去好好学的,虽然最近为了选修结课又得恶补一波 不过以后给策划造编辑器是要用的,这篇笔记 ...
- Cocos2dx游戏开发笔记23:《奇怪的大冒险》源码学习,附下载
懒骨头(http://blog.csdn.net/iamlazybone QQ:124774397 青岛) 以后有的忙了 抽空先来一发笔记 网上找了个demo:LOGO叫奇怪的大冒险(应该是@熊同学的 ...
- 【读书笔记】知易行难,多实践
前言: 其实,我不喜欢看书,只是喜欢找答案,想通过专业的解答来解决我生活的困惑.所以,我听了很多书,也看了很多书,但看完书,没有很多的实践,导致我并不很深入在很多时候. 分享读书笔记: <高效1 ...
- 【运维学习笔记】生命不息,搞事开始。。。
001生命不息,搞事不止!!! 这段时间和hexesdesu搞了很多事情! 之前是机械硬盘和固态硬盘的测速,我就在那默默的看着他一个硬盘一个机械测来测去. 坐在他后面,每天都能看到这位萌萌的小男孩,各 ...
- SSAN 关系抽取 论文笔记
20210621 https://zhuanlan.zhihu.com/p/353183322 [KG笔记]八.文档级(Document Level)关系抽取任务 共指id嵌入一样 但是实体嵌入的时候 ...
- pandas以前笔记
# -*- coding: utf-8 -*- """ Created on Sat Jul 21 20:06:20 2018@author: heimi "& ...
- PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call
您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...
- 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程
暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...
- 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移
暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...
- 王道考研 计算机网络笔记 第六章:应用层
本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 第一章:王道考研 计算机网络笔记 第一章:概述&计算机网络体系结构 第二章:王道考研 计算机网络笔记 第 ...
最新文章
- SQL脚本--有关压缩数据库日志
- 腾讯 Robotics X 实验室首次「开箱」移动机器人,能走梅花桩,还能自平衡
- 面试官:了解雪崩效应吗?了解Hystrix吗?怎么解决雪崩效应吗?(大型社死现场,教你运筹帷幄之中)
- android+busybox+编译,Android版busybox编译
- grunt 前端开发环境搭建
- 文件操作(上传,下载,限制)
- 一张图全解析个性化邮件那么重要
- css transition改动透明,使用CSS transition和animation改变渐变状态的实现方法
- 一些sql语句的详细解释
- Java多线程知识点整理(Lock锁)
- C++类中静态变量和静态方法使用介绍!
- Atiitt 降低财政赤字风险性实施方案
- DSP入门应该懂得57个问题
- Python安装pygame教程
- 查询各科成绩前三名的记录
- Spark——Spark Project Tungsten深入解析
- QT5 QDateTime函数及时间格式说明
- 计算机云平台热门吗,哪个云电脑好用又便宜?国内的云游戏平台到底哪个好?
- shell 命令笔记(Linux系统常见命令和Git使用,正在更新中)
- 软链接解决存储空间不足