Cocos2d-x 3.x游戏开发之旅---(TMXMap的操作)
来源:互联网 发布:黄金白银行情软件 编辑:程序博客网 时间:2024/06/06 01:05
《TMXTiledMap》
1 TMXTiledMap * map = TMXTiledMap::create(“Map.tmx”);
创建地图,注意一点 在Map.tmx 中使用到的图片要用相对路径:
这里用到的图片不要带路径。
2 地图可以加入到layer中,玩家可以加入到地图当中。
3 添加对象层,并绘制对象在地图中的位置:
TMXObjectGroup* objGroup = map->getObjectGroup(“objects”);
ValueMap playerPointMap = objGroup->getObject(“PlayerPoint”);
float playerX = playerPointMap.at(“x”).asFloat();
float playerY = playerPointMap.at(“y”).asFloat();
4 获取地图中每一块的坐标(x, y)
地板砖的坐标从左上角开始
坐标是从左下角开始
Point Player::tileCoordForPosition(Point pos)
{
Size mapTiledNum = m_map->getMapSize(); //获取地图的长宽
Size tiledSize = m_map->getTileSize(); //获取地板砖的长宽
int x = pos.x / tiledSize.width;
int y = (700 - pos.y) / tiledSize.height; //因为y轴颠倒,所以这样算,700为高
if (x >= mapTiledNum.width){x -= 1;}
if (y >= mapTiledNum.height){y -= 1;}
return Point(x, y);
}
根据xy获取格子的GID:
TMXLayer* meta = map->getLayer(“meta”); // 获取地图的某一层
int titleGid = meta->getTileGIDAt(tiledPos); //位置对应INDEX
Value properties = m_map->getPropertiesForGID(titleGid);//获取属性,这是个MAP
ValueMap propertiesMap = properties.asValueMap();
//MAP中是否有”Collidable”属性
if (propertiesMap.find(“Collidable”) != propertiesMap.end())
{
//如果有”Collidable”属性,获取值,值都是string类型的
Value prop = propertiesMap.at(“Collidable”);
if (prop.asString().compare(“true”) == 0)
{
………………..
}
}
根据XY删除格子:
TMXLayer* barrier = m_map->getLayer(“barrier”);
barrier->removeTileAt(tiledPos);
- Cocos2d-x 3.x游戏开发之旅---(TMXMap的操作)
- Cocos2d-x 3.x游戏开发之旅---(Animation的操作)
- Cocos2d-x 3.x游戏开发之旅
- Cocos2d-x 3.x游戏开发之旅---<Lambda>
- Cocos2d-x 3.x游戏开发之旅---<消息转发>
- Cocos2d-x 3.x游戏开发之旅---<状态机>
- Cocos2d-x 3.x游戏开发之旅---<UI模块>
- Cocos2d-x 3.x游戏开发之旅---<单例要加retain()>
- Cocos2d-x 3.x游戏开发之旅---《plist文件的使用》
- Cocos2d-x游戏开发之Lua开发ide的搭建
- 《Cocos2d-x 3.x游戏开发之旅》读书笔记(1)
- Cocos2d-x 3.x游戏开发之旅读书笔记(2)
- Cocos2d-x 3.x游戏开发之旅读书笔记(3)
- Cocos2d-x 3.x游戏开发之旅---(Runner实现总结)
- Cocos2d-x 3.x游戏开发之旅---<把角色放在屏幕中间>
- Cocos2d-x 3.x游戏开发之旅---<Lua与C++>
- cocos2d-x游戏开发
- 《Cocos2d-x游戏开发之旅》读书笔记1:开发环境
- 优质嵌入式C程序
- java线程中的interrupt,isInterrupt,interrupted方法以及如何终止线程(二)
- C++ Builder 带VCL 的DLL
- 各种气象数据下载地址推荐
- 上篇:基于球面调和基的实时全局光照明
- Cocos2d-x 3.x游戏开发之旅---(TMXMap的操作)
- 虚拟机安装linux与远程登录
- 2017年浙江中医药大学大学生程序设计竞赛-B:一生之敌(思维)
- css处理浏览器输入框记住账号密码后的背景色
- SAS中的report过程简介
- 分布式跟踪系统调研
- 【ajax】——问题式总结
- modem文档和寄存器访问方式
- Scrapy简单入门及实例讲解