creator游戏《Protecive goddess》(三)--- A星寻路 + tiledMap

一、tiledMap使用

1.创建新地图 各版本下载地址
2.导入图块集,两种选择方式 ①提前打好的图集 ②多图片合集(散图),我们这里是第二种
在这里插入图片描述
3.给图块添加碰撞属性
在这里插入图片描述
在这里插入图片描述

4.添加碰撞图层,在右上角图层的位置鼠标右键–新建–图块层,此处 的meta便是我们的碰撞层,用上一步我们设置好的具有碰撞属性的图块在这个图块层上绘制。
一般项目中这个meta层都会隐藏掉,它只是起到标记的作用,方便直观的看到标记区域
在这里插入图片描述


二、A星寻路

A星的简单介绍请看这里:用简单直白的方式讲解A星寻路算法原理


三、两者如何配合使用

① 首先创建一个ANode类来记录tilemap每个格子的数据,比如所在行列、父节点、是否可行走、F/G/H的值等。
② 创建一个Grid的类来管理ANode。
③ 最后创建一个AStart的类,主要是对A星算法的封装,内部需要一个变量 m_grid 引用Grid类,并对外提供 m_grid 网格数据的初始化和寻路的接口。


四、demo展示

点击任何非红色图块,如果有路径返回图块都可以到达,相机也会过跟随移动
在这里插入图片描述

图块障碍物判断的核心代码,上述图块 “Collidadle” 属性的使用

	// 图块障碍判断
	// tileCoord:图块的行列值
    private isUseableTile(tileCoord) {
    	// 从meta图块层上获取这个图块的gid
        let tileGid = this.m_metaLayer.getTileGIDAt(tileCoord)
        if (!tileGid || tileGid < 0) {
            return true;
        }

		// 拿到这图块上的所有属性
        let properties = this.m_map.getPropertiesForGID(tileGid) 
        if (properties && properties["Collidadle"]) {
            return false;
        }
        else {
            return true;
        }
    }

demo源码:AStar_TiledMap

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值