找回密码
 点一下
查看: 1389|回复: 18

关于取消自动寻路的再度疑问

[复制链接]
发表于 2011-12-17 11:02:58 | 显示全部楼层 |阅读模式
论坛有个帖子老大回答了用触发器判断前方是阻碍时,通过两点路径来判断是不是可行走,可是我找了好外,找不到这条语句。

另外,出了一个地图《魔鬼赛道》,上面还有像服务器延时做成的赛车行动迟钝问题,以及更流畅的镜头跟随系统,这个有法办解决吗?
发表于 2011-12-17 11:18:02 | 显示全部楼层
你应该可以在条件判断里找到,而且还不止一个的。

一个分类在AI里,一个分类在点里。你搜索一下看看。推荐用后面一个。
回复

使用道具 举报

发表于 2011-12-17 11:20:27 | 显示全部楼层
真找不到就按Ctrl+D,然后搜索PointPathingCost
回复

使用道具 举报

 楼主| 发表于 2011-12-17 12:29:06 | 显示全部楼层
我找了两点的路径消耗了,现在如果要判断目标点和反射点吗?我作了4个变量

        点 = ((PlayerHeroUnit[0]的位置点)朝UnitNowAngle[0]度偏移0.1) <点>
        点 2 = ((PlayerHeroUnit[0]的位置点) 按正常朝向UnitNowAngle[0]被反射在 点) <点>
        dis = ((PlayerHeroUnit[0]的位置点)和点之间的路径费用) <整数>
        dis 2 = ((PlayerHeroUnit[0]的位置点)和点 2之间的路径费用) <整数>
回复

使用道具 举报

 楼主| 发表于 2011-12-17 12:32:42 | 显示全部楼层

回 2楼(麦德三世) 的帖子

麦德三世:真找不到就按Ctrl+D,然后搜索PointPathingCost
&#160;(2011-12-17 11:20)&#160;
我找了两点的路径消耗了,现在如果要判断目标点和反射点吗?我作了4个变量

        点 = ((PlayerHeroUnit[0]的位置点)朝UnitNowAngle[0]度偏移0.1) <点>
        点 2 = ((PlayerHeroUnit[0]的位置点) 按正常朝向UnitNowAngle[0]被反射在 点) <点>
        dis = ((PlayerHeroUnit[0]的位置点)和点之间的路径费用) <整数>
        dis 2 = ((PlayerHeroUnit[0]的位置点)和点 2之间的路径费用) <整数>

我都看不出这几个点之前有什么变化,难道不是反射点?
回复

使用道具 举报

发表于 2011-12-17 12:43:42 | 显示全部楼层
我倒是想问你你在干什么?

这和反射点有什么关系?

如果你要判断两点之间是否存在障碍物,那么先计算两点间的通行路径长度,然后减去两点间直线距离,大于2就是有障碍呗。

至于为什么是大于2而不是大于0,是因为路径长度是整数而直线距离是实数。
回复

使用道具 举报

 楼主| 发表于 2011-12-17 12:57:46 | 显示全部楼层
明白了,我再试,有结果再来回报
回复

使用道具 举报

 楼主| 发表于 2011-12-17 13:08:23 | 显示全部楼层

回 5楼(麦德三世) 的帖子

麦德三世:我倒是想问你你在干什么?

这和反射点有什么关系?

如果你要判断两点之间是否存在障碍物,那么先计算两点间的通行路径长度,然后减去两点间直线距离,大于2就是有障碍呗。
.......&#160;(2011-12-17 12:43)&#160;
点 = ((PlayerHeroUnit[0]的位置点)朝UnitNowAngle[0]度偏移0.1) <点>
上面这是要移动的目标点,这里就是0.1
dis = ((PlayerHeroUnit[0]的位置点)和点之间的路径费用) <整数>
这是路径消耗
如果刚刚好前面是障碍物或悬崖,会是dis-0.1>2?

反射点是我理解错了,我的目标跟你说的一致,判断前面是否障碍物,WSAD中应用的。
回复

使用道具 举报

发表于 2011-12-17 13:55:40 | 显示全部楼层
0.1的话距离短了点,这个距离你都可以直接判断目标点是否可通行了。


而且你要考虑到你的单位本身的占用面积,如果单位半径大于0.1,那你就别说是去考虑这0.1的距离中有没有障碍物了。这种判断根本没意义,你要根据单位自身占用面积来决定提前判定多少距离。


另外,2只是一个粗略值,这是考虑到了一些可以以很小的角度绕过的障碍物存在的状况。如果你要严格到沿路必须一点障碍物都没有的话,那就直接判断>0好了。0或者负数都算无障碍。
回复

使用道具 举报

 楼主| 发表于 2011-12-17 14:12:41 | 显示全部楼层

回 8楼(麦德三世) 的帖子

麦德三世:0.1的话距离短了点,这个距离你都可以直接判断目标点是否可通行了。


而且你要考虑到你的单位本身的占用面积,如果单位半径大于0.1,那你就别说是去考虑这0.1的距离中有没有障碍物了。这种判断根本没意义,你要根据单位自身占用面积来决定提前判定多少距离。

.......&#160;(2011-12-17 13:55)&#160;
是这样的,我做的WSAD控制,你看下《魔鬼赛道》,移动过程会涉及到这么小的距离,当然也有大一点的距离,这里的问题就是碰到障碍物会弹来弹去啊,因为这个自动寻路。
我觉得在碰撞方面要是暴雪给单位多一个不自动寻路的标旗就方便多了。
回复

使用道具 举报

 楼主| 发表于 2011-12-17 14:30:37 | 显示全部楼层

回 8楼(麦德三世) 的帖子

麦德三世:0.1的话距离短了点,这个距离你都可以直接判断目标点是否可通行了。


而且你要考虑到你的单位本身的占用面积,如果单位半径大于0.1,那你就别说是去考虑这0.1的距离中有没有障碍物了。这种判断根本没意义,你要根据单位自身占用面积来决定提前判定多少距离。

.......&#160;(2011-12-17 13:55)&#160;
目前我测试到的路径消耗都是0,这让我很纠结,因为是整数,而这些移动都小于1……
回复

使用道具 举报

发表于 2011-12-17 14:36:09 | 显示全部楼层
路径消耗是0无所谓,如果目标点无法通行就会变成65535。

你需要是两个数的差不是数字本身。
回复

使用道具 举报

发表于 2011-12-17 14:41:39 | 显示全部楼层
哇.居然是65535,这是2的16次幂减1啊...
  居然是16位的....................我拉个搓
回复

使用道具 举报

发表于 2011-12-17 14:54:31 | 显示全部楼层
假设你单位半径是2,而你只想前进0.1的距离,那么你需要判断的是2.1处是否可通行。

否则是没意义的,因为你的单位既然都站在那了,那单位中心点周围2半径的圆圈内肯定是没东西的。

你判断到前方2.1处这段距离内是否没有障碍,若没有则向前移动0.1
回复

使用道具 举报

发表于 2011-12-17 15:05:59 | 显示全部楼层

回 13楼(麦德三世) 的帖子

麦德三世:假设你单位半径是2,而你只想前进0.1的距离,那么你需要判断的是2.1处是否可通行。

否则是没意义的,因为你的单位既然都站在那了,那单位中心点周围2半径的圆圈内肯定是没东西的。

你判断到前方2.1处这段距离内是否没有障碍,若没有则向前移动0.1&#160;(2011-12-17 14:54)&#160;
...我拉个搓..
  原来是这样的...
   头目点醒了我啊......
回复

使用道具 举报

 楼主| 发表于 2011-12-17 19:53:53 | 显示全部楼层

回 13楼(麦德三世) 的帖子

麦德三世:假设你单位半径是2,而你只想前进0.1的距离,那么你需要判断的是2.1处是否可通行。

否则是没意义的,因为你的单位既然都站在那了,那单位中心点周围2半径的圆圈内肯定是没东西的。

你判断到前方2.1处这段距离内是否没有障碍,若没有则向前移动0.1&#160;(2011-12-17 14:54)&#160;
我发现了另外一个更有意思的判断
                                (点 可通行)==假
这与路径消耗更为简单,在大大的提醒下,当然也需要加上半径的距离,而且不用担心小数的问题。

当然,对于WSAD控制的游戏,只判断前方是否可通行是不够的,必须加多几个点:
                                
目标方向,目标方向+10度,目标方向加45度,目标方向-10度,目标方向-45度
判断点越多、判断的次数更频繁越越准确。

具体请看:魔鬼赛道RC 版本
回复

使用道具 举报

 楼主| 发表于 2011-12-17 19:57:34 | 显示全部楼层

回 15楼(govo) 的帖子

govo:我发现了另外一个更有意思的判断
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;(点 可通行)==假
这与路径消耗更为简单 ..&#160;(2011-12-17 19:53)&#160;
这个判断不对把单位列入判断行列,对悬崖和无路径的判断有效。
回复

使用道具 举报

发表于 2011-12-17 20:02:33 | 显示全部楼层
我在8楼就已经说了你可以用点是否可通行来判断。
回复

使用道具 举报

 楼主| 发表于 2011-12-17 20:35:08 | 显示全部楼层

回 17楼(麦德三世) 的帖子

麦德三世:我在8楼就已经说了你可以用点是否可通行来判断。&#160;(2011-12-17 20:02)&#160;
嗯,当时还不知道有这个,所以没理解你的话
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-27 14:28 , Processed in 0.034758 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表