Project1

标题: 一段脚本,不知道什么地方不对以致无法达到效果,求指教 [打印本页]

作者: project999    时间: 2010-10-31 18:15
标题: 一段脚本,不知道什么地方不对以致无法达到效果,求指教
本帖最后由 project999 于 2010-11-11 17:37 编辑

是从某一个点开始,查找周围可以到达的事件(默认图块草地为可以通行,木桩为不能通行)
可是输出的@tested和@event_connected都很奇怪……
下面是脚本
  1.   def test(x, y)
  2.       @tested[x][y] = 1
  3.     #判断本格子
  4.     if $game_map.event_judge(x, y) != -1  #判断在x,y的位置有没有事件
  5.       #获取事件名字
  6.       @id = $game_map.event_judge(x, y)
  7.       @name = $game_map.events[@id].event.name.to_i
  8.   @event_connected[@testing_event].push @id
  9.     else  #在x,y的位置没有事件
  10.       if $game_map.data[x, y, 0] == 384 #x,y的位置是草地
  11.       test(x + 1, y) if @tested[x + 1][y] != 1
  12.       test(x - 1, y) if @tested[x - 1][y] != 1
  13.       test(x, y + 1) if @tested[x][y + 1] != 1
  14.       test(x, y - 1) if @tested[x][y - 1] != 1
  15.       elsif $game_map.data[x, y, 0] == 388 #x,y的位置是树桩
  16.         #结束此块判断
  17.       end
  18.     end
  19.   end
复制代码
=========================================
在群里接受IamI的指点,已经解决第一个问题
原来里面有一句 @event_connected[@testing_event].push id,id应为@id
另外在p @tested的时候仍然有问题,求指教
作者: goahead    时间: 2010-11-1 17:15
提示: 作者被禁止或删除 内容自动屏蔽
作者: project999    时间: 2010-11-1 17:31
回复 goahead 的帖子

谢谢~的确是递归,但是外部什么的还并不是很理解。
这个的效果就是在一张地图上寻找某个位置可以直接到达的事件,地图由草原和木桩的图块构成,草原表示可以通过,木桩不能。另外寻找所有事件的功能似乎可以实现,但是@tested,就是显示某点开始已经遍历过的图块,显示的效果总是有问题。
作者: 柳之一    时间: 2010-11-2 08:09
如果在x,y的位置没有事件
且x,y的位置是树桩
返回值是什么?false吗?

作者: goahead    时间: 2010-11-2 09:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: project999    时间: 2010-11-2 14:38
谢谢楼上两位……不过技术不够,还是需要具体的解释……
作者: goahead    时间: 2010-11-3 11:28
提示: 作者被禁止或删除 内容自动屏蔽
作者: project999    时间: 2010-11-3 17:04
回复 goahead 的帖子

说实话广度优先一直没看懂……努力去了。
站上的东西也会努力的。
另外请问那个东西在边界处理相关的地方有错误么?觉得可能是不是那里不对。
作者: goahead    时间: 2010-11-5 09:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: project999    时间: 2010-11-6 12:02
回复 goahead 的帖子
判断遇到桩只是一个点,代表整个地图所有点

求具体的解释……
另外后来发现一些完全可以用局部变量的地方用了实例变量= =是这个意思么?
作者: 精灵使者    时间: 2010-11-6 12:15
精灵突然想起来这个东西了:战棋的判定移动范围算法,是不是这样呢?
作者: project999    时间: 2010-11-6 13:35
回复 精灵使者 的帖子

可能很接近吧。




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