gamemaker吧 关注:13,696贴子:95,891
  • 3回复贴,共1
mp_grid_path(id,path,xstart,ystart,xgoal,ygoal,allowdiag)
这个函式可以根据a*演算法算出一条接近最短距离的路径(官方说明档说的..)
mp_grid_add_instances(id,obj,prec)
而这个函式可以增加阻挡物,就是移动时必须绕过这个实例
问题就来了...
我使用了之后,这个路径还是会穿过阻挡物,直接到达终点
http://cid-a5a99a6495eb21a7.skydrive.live.com/self.aspx/GM8/%e5%9c%96%e7%89%87/%e6%9c%aa%e5%91%bd%e5%90%8d.JPG
图上的线为路径,block为阻挡物,由1走到2,他直接穿越了....
gmk档
http://cid-a5a99a6495eb21a7.skydrive.live.com/self.aspx/GM8/%e7%af%84%e4%be%8b/problem.gmk
求高手解答我的问题出在哪...
(这个问题是延续战棋slg路径那篇....)


1楼2010-06-01 11:31回复
    补充:一开始跳出来的message_box显示的是整个路径的长度(以32为一单位)


    2楼2010-06-01 11:34
    回复
      2026-02-24 09:41:20
      广告
      不感兴趣
      开通SVIP免广告
      我发现我错在哪里了...
      我把mp_grid_add_instances(id,obj,prec)放在
      mp_grid_path(id,path,xstart,ystart,xgoal,ygoal,allowdiag)
      下面..


      4楼2010-06-01 12:20
      回复
        我打算人物进入移动选择状态就重新生成一次path
        还在打算要不要结束移动就清理掉原本的grid
        但还是算了 这样子好像反而消耗资源
        grid大小只有range*2+1应该不是很吃资源


        6楼2010-06-01 12:55
        回复