项目中有个要求就是攻守双方进行进行战斗。有个地图上的门只允许守方可以通过,敌方无法通过。现在寻路用的是a星算法。请问这个该怎么做到,判断敌方点击墙内就寻路到墙外一格不会走进去,而守方可以点击墙外走出去当然也能再走回来。
用的是a星算法寻路。
unity开发,寻路没用插件,地图是老式的格子地图,一格格走的。
有大佬帮助吗,有偿回答。
大概给题主一个思路。
所谓的门应该是一个坐标点吧。你可以把判断墙的问题简化为判断坐标问题。
当你使用A*算法进行寻路的时候,生成一条路径。简化起见,敌我双方都可以任意生成路径,并进行寻路。
根据这个路径移动坐标的时候,敌方类判断下一个路径点是否为门的坐标,如果是门则停止更新坐标,这样就让敌方停在门前不动了。
如果是己方类的话,就可以任意通过这个门的坐标。
以前有个游戏 魔法门-英雄无敌,他会设置一个门,有钥匙能通过,没有钥匙不能通过,你就是要创造一个门,这个门需要点击,己方通过,敌方通不过即可,己方相当于带了钥匙。只要编程这个门即可,写个逻辑判断,为真==己方,为假==敌方
给您提供一个思路:当开始执行A*算法时,首先判断被执行的单位是敌方还是守方。如果是敌方,那就先搜索与点击位置最近的墙外位置,然后将A*的终点替换为墙外的位置。如果是守方,则按照原来的点击位置进行移动。