tiledmap 图块属性_TiledMap地图使用
TiledMap简介
TiledMap是一款地图编辑器。我们常用它编辑一些相似度很大的背景,例如天天酷跑,游戏的地图就是用很多相同的色块组成。如果用纯代码取拼接那会很复杂,如果用TileMap去制做一个地图,那么运用起来就很简单。
/************************************************************************/
/*打开Tiled软件,新建一个文件,设置宽度和高度,然后添加图块(下图),添加好了后
自己创建地图,然后保存为level01.tmx.
*/
/************************************************************************/
1.在程序中加载tmx文件
CCTMXTiledMap *map = CCTMXTiledMap::create("level01.tmx");
this->addChild(map);
2.使用对象层(设置一个固定的精灵起点)
命名为objects,
设置对象属性,
在代码中获取到X和Y坐标的值:
/*加载对象层*/
CCTMXObjectGroup *objGroup = map->objectGroupNamed("objects");
/*加载玩家坐标对象*/
CCDictionary* playerPointDic = objGroup->objectNamed("PlayerPoint");
float x = playerPointDic->valueForKey("x")->floatValue();
float y = playerPointDic->valueForKey("y")->floatValue();
/*设置玩家坐标*/
m_player->setPosition(ccp(x,y));
3.添加障碍物,Tiled障碍层的使用
命名barrier,
此时主角精灵还是能够越过这个障碍继续向前,还得建一个meta层,添加新素材meta_tiles.png
选择第一个方块,右键
然后选中meta层,将刚才的方块挨个放在之前的障碍物上面,保存地图。
代码中如何判断:
CCPoint tiledCoordForPosition(CCPoint pos)
{
/*函数功能:将像素坐标转换成地图格子坐标*/
CCSize mapTiledNum = m_map->getMapSize();//地图方块数
CCSize tiledSize = m_map->getTiledSize();//单个方块的大小
int x = pos.x/tiledSize.width;
int y = (640-pos.y)/tiledSize.height;
if(x>0){
x-=1;
}
if(y>0){
y-=0;
}
return ccp(x,y);
}
void setTagPosition(int x,int y)
{
/*判断前方是否不可通行*/
/*取主角前方的坐标*/
CCSize spriteSize = GetSprite()->getContentSize();
CCPoint dstPos = CCPoint(x+spriteSize.width/2,y);
/*获得相应坐标的格子位置*/
CCPoint tiledPos = tiledCoordForPosition(ccp(dstPos.x,dstPos.y));
/*获得格子的唯一标示*/
CCTMXLayer* meta = m_map->layerNamed("meta");
meta->setVisible(false);
meta->retain();
int tiledGid = meta->tileGIDAt(tiledPos);
/*不为0表存在这个格子*/
if(tiledGid!=0)
{
/*这个格子既属于meta,同时也属于整个地图的*/
CCDictionary* propertiesDict = m_map->propertiesForGID(tiledGid);
/*取得格子的属性*/
const CCString* prop = propertiesDict->valueForKey("Collidable");
/*判断Collidable里面的属性值是否为true,如果是,不让玩家移动*/
if(prop->m_sString.compare("true")==0){
return;
}
}
Entity::setTagPosition(x,y);
/*以主角为中心移动地图*/
setViewPointByPlayer();
}
4.从障碍层清除当前格子的物体
CCTMXLayer* barrier = m_map->layerNamed("barrier");
barrier->removeTileAt(tiledPos);
以上就是TiledMap地图的使用,希望能帮到大家,如果大家还想了解的更多,可以参考《瓦片地图 Tiled Map》
tiledmap 图块属性_TiledMap地图使用相关推荐
- tiledmap 图块属性_tiledmap 可以在图块层的指定格子上添加Sprite吗
constructor(mapname:string, x:number, y:number){ super(); //显示登陆界面 this.tMap = new Laya.TiledMap() t ...
- tiledmap 图块属性_Tiled Editor 图块的两种导入方式
一.图块集图块的导入. 打开或者创建地图后,新建 新图块. 弹出新图块面板 图块类型选择 "基于图块集图块",一定要选择"嵌入地图",否则需要另存为其他类型的文 ...
- RPG游戏 01-人物行走和地图图块
要开发一个游戏,地图是首先应该考虑的,我这里使用的是tiled来编辑地图.tiled对于一般的游戏开发还行,相对通用,不过也没有那么强的针对性.所以在开发游戏时要对从tiled解析的内容里再在程序中进 ...
- (Tiled官方文档翻译)第五节:图块集的编辑
编辑一个tileset(图块集)需要将图块集显式地打开.内部的图块集可以通过文件菜单来打开,但是通常是通过点击图块集窗口下方的"编辑图块集"小按钮来快速打开编辑图块集. 5.1 两 ...
- vb外部调用autocad_AutoCAD教程之图块的各种相关操作和概念
制图过程中,有时常需要插入某些特殊符号供图形中使用,此时就需要运用到图块及图块属性功能.利用图块与属性功能绘图,可以有效地提高作图效率与绘图质量.也是绘制复杂图形的重要组成部分. 一.图块的特点 图块 ...
- lisp把选集转成表_晓东CAD家园-论坛-LISP/VLISP程序库-[LISP程序]:把text转为属性图块 - Powered by Discuz!...
;;把text转为属性图块 ;;By LUCAS (defun C:C_DEF (/ HOLDECHO HOLDBLIP HOLDREQ SS SSS N A AA A1 A73 HH LST_210 ...
- cocos2d-x TiledMap获取tiled属性:tiledID、旋转以及翻转信息
针对地图TiledMap工具地形刷出的图块进行属性获取的方法 这块也是找了半天,最后通过TMXLayer类源码查询获得结果,在此记录下 工具操作: 1.按x,y键进行tiled对应的x,y轴翻转 2. ...
- idea 编写javafx_用JavaFX编写图块引擎
idea 编写javafx 随着JavaFX嵌入式版本的问世,我们的框架对于游戏开发变得越来越有趣,因为我们现在可以瞄准平板电脑和智能手机等小型消费类设备. 因此,我决定对JavaFX进行更多的游戏编 ...
- 用JavaFX编写图块引擎
随着JavaFX嵌入式版本的问世,我们的框架对于游戏开发变得越来越有趣,因为我们现在可以瞄准平板电脑和智能手机等小型消费类设备. 因此,我决定对JavaFX进行更多的游戏编写实验. 这次,我想使用Ca ...
- javafx 教程_用JavaFX编写图块引擎
javafx 教程 随着JavaFX嵌入式版本的问世,我们的框架对于游戏开发变得越来越有趣,因为我们现在可以瞄准平板电脑和智能手机等小型消费类设备. 因此,我决定对JavaFX进行更多的游戏编写实验. ...
最新文章
- TRUNK配置详细讲解
- RocketMQ控制台安装教程
- duilib控件的一些属性
- KRPano JS 场景编辑器源码
- Afterthought 原来是这样的啊。。。。
- extend 对象继承
- windox与ubuntu18.04安装clion及导入qt库
- 如何设置dedecms自定义表单必填项?
- 太赞了,竟然用SpringBoot打造一款网页版的IM,进行聊天...
- Arcgis 连接PostgreSQL
- 往linux内核添加ch341,linux 4.1 usb驱动之usb_serial芯片ch341
- 剪切caspase3_Proteintech抗体检测caspase 3前体及剪切体 - 泽浩公司
- matlab 脉冲压缩算法,雷达脉冲压缩matlab
- win10命令行动态调整网卡优先级
- zrst指令是什么意思_三菱PLC梯形图所有指令符号是什么意思?
- 花了两天时间用html+css+js做了一个网页版坦克大战游戏
- C语言数码管节日灯,硬件课程设计报告可编程节日彩灯(C语言).pdf
- python中的global是什么意思_Python中的global关键字,你了解吗?
- java中 a-zA-z_关于java:Regex:/ w表示[a-zA-Z]还是[a-zA-Z0-9_],因为大多数教程都提到w-匹配单词字符?...
- 00后确实卷,公司新来的卷王,我们这帮老油条真干不过...