加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 yang1zhi 于 2016-4-9 00:03 编辑
我添加了等待解决了
class Game_Character def move_dr(dr) case dr when 2 move_down @wait_count += 1 when 4 move_left @wait_count += 1 when 6 move_right @wait_count += 1 when 8 move_up @wait_count += 1 else move_toward_player @wait_count += 1 end end
class Game_Character
def move_dr(dr)
case dr
when 2
move_down
@wait_count += 1
when 4
move_left
@wait_count += 1
when 6
move_right
@wait_count += 1
when 8
move_up
@wait_count += 1
else
move_toward_player
@wait_count += 1
end
end
# ============================================================== # # 生成路徑 def make_path x = @tx;y = @ty @path = [] # while !(x == @ox && y == @oy) #TODO:有過多障礙時死轉…… @g = @g_data[x, y] @best_f = 0 dir = 0 dir = make_step(x, y - 1, 2)||dir # ->生成單步 dir = make_step(x, y + 1, 8)||dir # ->生成單步 dir = make_step(x - 1, y, 6)||dir # ->生成單步 dir = make_step(x + 1, y, 4)||dir # ->生成單步 @path.unshift(dir) case dir when 2 then y -= 1; when 8 then y += 1; when 6 then x -= 1; when 4 then x += 1; end @p_data[x, y] = 1 # end end # ============================================================== #
# ============================================================== #
# 生成路徑
def make_path
x = @tx;y = @ty
@path = []
# while !(x == @ox && y == @oy) #TODO:有過多障礙時死轉……
@g = @g_data[x, y]
@best_f = 0
dir = 0
dir = make_step(x, y - 1, 2)||dir # ->生成單步
dir = make_step(x, y + 1, 8)||dir # ->生成單步
dir = make_step(x - 1, y, 6)||dir # ->生成單步
dir = make_step(x + 1, y, 4)||dir # ->生成單步
@path.unshift(dir)
case dir
when 2 then y -= 1;
when 8 then y += 1;
when 6 then x -= 1;
when 4 then x += 1;
end
@p_data[x, y] = 1
# end
end
# ============================================================== #
就是那个注释里写着TODO:有過多障礙時死轉……那个。
障碍多了就不寻路,还有重点是目标被围住后变得很卡。
我把他#了后就不卡了。不过他们就变成了背对我。
是被障碍挡住过不来的事件造成很卡,不是身边的
寻路脚本 |