设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1596|回复: 0
打印 上一主题 下一主题

[已经解决] 求助,帮忙把这个寻路脚本这几句改一下,不然太卡了

[复制链接]

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

跳转到指定楼层
1
发表于 2016-4-8 01:23:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 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:有過多障礙時死轉……那个。
障碍多了就不寻路,还有重点是目标被围住后变得很卡。
我把他#了后就不卡了。不过他们就变成了背对我。

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


寻路脚本
  
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-22 11:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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