CCTMXTiledMap 说明
来源:互联网 发布:学会了单片机再学plc 编辑:程序博客网 时间:2024/04/29 19:49
CCTMXTiledMap 可以导入由Tiled创建的地图文件格式。
tmx地图的内部坐标是从左上角开始的, tiled可以有多层,使用layerNamed()函数获取某个层的CCTMXLayer指针
比如下图有一个hill层:
CCTMXTiledMap* pMap = CCTMXTiledMap::create("test.tmx");
CCTMXLayer* hillLayer = pMap->layerNamed("hill");
然后在Tiled编辑器里可以看到每块图都有一个序号,比如下图是(1,22),其实这里面每一块图都是一个CCSprite,我们可以用 CCSprite* sp = hillLayer->tileAt(1, 22); 来获取到这块地图对应的精灵。
*这里要注意这个精灵的锚点默认是左下角的,如果调用 sp->getPosition(); 得到的点是该图块左下角的点,而一般的CCSprite创建后是锚点是在图片中央。
可以调用CCTMXTiledMap的getMapSize()获取整个地图的大小,getTiledSize()来获得每一个小块的尺寸。
我们经常看到网上两个坐标转换的函数:
CCPoint GameMap::tileCoordForPosition(CCPoint position)
{
int x = position.x / this->getTileSize().width;
int y = (((this->getMapSize().height) * this->getTileSize().height) - position.y) / this->getTileSize().height;
return ccp(x, y);
}
这个是cocos2dx转tiled的坐标(上面说的tileAt(1,22)的参数1,22),原理如下:假设每块小地图的长度宽度都是32,如果参数是(120,200)那么,相当于小地图的X轴的 4 块, Y轴的 6 块。因为tiled地图从第0块算起的,所以X轴是3。 而Y轴是从上往下的,所以要(总块数-6),才是Y轴的坐标。
0 0
- CCTMXTiledMap 说明
- CCTMXTiledMap
- CCTMXTiledMap
- CCTMXTiledMap 介绍
- Cocos2d-x CCTMXTiledMap类
- cocos2d - 地图 CCTMXTiledMap
- cocos2dx之CCTMXTiledMap
- CCTMXTiledMap的使用
- 瓦片地图类之CCTMXTiledMap
- cocos2d-x坐标(CCTMXTiledMap)
- 使用CCTMXTiledMap出错的问题!
- 瓦片地图类之CCTMXTiledMap
- 使用CCTMXTiledMap出错的问题!
- cocos2dx进阶学习之CCTMXTiledMap
- CCTMXTiledMap使用的几个事项
- 关于CCTMXTiledMap不支持读取polyline的问题
- cocos2d-x节点(CCTMXTiledMap.h)API
- cocos2dx入门教程一CCTMXTiledMap和CCTileMapAtlas
- 413 Request Entity Too Large
- BeagleBone Black——AM335X——中断控制
- Lua math 库
- 添加压缩功能的完全可控件IP*Works! Zip
- Effective C++:条款23:宁以non-member、non-friend替换member函数
- CCTMXTiledMap 说明
- flex4 操作word文档
- 自动找bug插件
- ARM交叉编译搭建SSH-Server至目标板
- 自定义控件 GifImageView 可以播放gif动态图的ImageView
- s3c2440 UART设备结构体的定义
- WCF初探-3:WCF消息交换模式之单向模式
- 非计算机类专业毕业生五年程序员职业生涯的回顾和思考
- c#记事本代码