Project1

标题: 求助,帮忙把这个寻路脚本这几句改一下,不然太卡了 [打印本页]

作者: yang1zhi    时间: 2016-4-8 01:23
标题: 求助,帮忙把这个寻路脚本这几句改一下,不然太卡了
本帖最后由 yang1zhi 于 2016-4-9 00:03 编辑

我添加了等待解决了
RUBY 代码复制
  1. class Game_Character
  2.   def move_dr(dr)
  3.     case dr
  4.     when 2
  5.       move_down
  6.           @wait_count += 1
  7.     when 4
  8.       move_left
  9.           @wait_count += 1
  10.     when 6
  11.       move_right
  12.           @wait_count += 1
  13.     when 8
  14.       move_up
  15.           @wait_count += 1
  16.     else
  17.       move_toward_player
  18.     @wait_count += 1
  19.     end
  20.   end



RUBY 代码复制
  1. # ============================================================== #
  2.   # 生成路徑
  3.   def make_path
  4.     x = @tx;y = @ty
  5.     @path = []
  6.    # while !(x == @ox && y == @oy) #TODO:有過多障礙時死轉……
  7.       @g = @g_data[x, y]
  8.       @best_f = 0
  9.       dir = 0
  10.       dir = make_step(x, y - 1, 2)||dir # ->生成單步
  11.       dir = make_step(x, y + 1, 8)||dir # ->生成單步
  12.       dir = make_step(x - 1, y, 6)||dir # ->生成單步
  13.       dir = make_step(x + 1, y, 4)||dir # ->生成單步
  14.       @path.unshift(dir)
  15.       case dir
  16.       when 2 then y -= 1;
  17.       when 8 then y += 1;
  18.       when 6 then x -= 1;
  19.       when 4 then x += 1;
  20.       end
  21.       @p_data[x, y] = 1
  22.    # end
  23.   end
  24.   # ============================================================== #

就是那个注释里写着TODO:有過多障礙時死轉……那个。
障碍多了就不寻路,还有重点是目标被围住后变得很卡。
我把他#了后就不卡了。不过他们就变成了背对我。

是被障碍挡住过不来的事件造成很卡,不是身边的


寻路脚本
  




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1