Tiled瓦片地图的使用

Tiled软件使用的注意事项:
1️⃣文件的导入。图层文件的导入不能有中文名字,最好是先把需要的资源文件导入到工程的Resource文件夹中,让后到这个文件夹中导入Tiled软件,进行瓦片地图的绘制。
2️⃣文件的导出。在保存的时候就可以直接保存到工程的Resource文件夹中,随后在工程中添加,即导出成功。导出后可以查看.tmx文件,可以尝试着读懂导出的.tmx文件。
以上步骤完成后就可以在程序中使用瓦片地图了。
// 获得地图层,将其层级设为-1
TMXTiledMap * m_tiled = TMXTiledMap::create(“Tiled1.tmx");
addChild(m_tiled,-1);
//获得图层
TMXLayer * floor = tiled->getLayer("floor");
接着我们要添加英雄对象了,首先要先设置一个对象层,接着为了设置英雄的精灵图片,设置一个矩形区域(“图层”)
TMXObjectGroup * objects = m_tiled-> getObjectGroup ( "object" );
  ValueMap m_player = objects-> getObject ( “player”);
然后设置一个精灵,用这个对象的坐标来设置精灵的位置
    int x = m_player[ "x" ]. asInt ();
   
int y = m_player[ "y" ]. asInt ();
   
auto hero = Sprite :: create ( "Player.png" );
    hero->setPosition(x, y);
这时候,精灵已经可以在地图上显示出来了,值得注意的是对象曾与对象之间是Map的键值对的存储形式
这时候需要考虑通过点击来控制英雄的移动了。首先要设置触摸监听,代码略去,在重写的触摸事件中首先要知道点击点的位置是世界坐标系,相对于屏幕的左下角,需要将其转换为节点坐标系的点(相对于layer,因为在layer中的精灵坐标是相对于layer的坐标),通过点击屏幕让英雄瞬移到所点击屏幕的坐标显然是不可行的,我们点击一下让英雄移动一个瓦块的距离,通过点击的位置与英雄的位置差来判断行走的方向。
bool TiledTest::onTouchBegan(Touch *touch, Event *unused_event){
   
auto touchPos = touch->getLocation();
   
auto heroPos = hero->getPosition();
   
auto direction = touchPos - heroPos;
   
if (std::abs(direction.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值