Project1
标题:
一段脚本,不知道什么地方不对以致无法达到效果,求指教
[打印本页]
作者:
project999
时间:
2010-10-31 18:15
标题:
一段脚本,不知道什么地方不对以致无法达到效果,求指教
本帖最后由 project999 于 2010-11-11 17:37 编辑
是从某一个点开始,查找周围可以到达的事件(默认图块草地为可以通行,木桩为不能通行)
可是输出的@tested和@event_connected都很奇怪……
下面是脚本
def test(x, y)
@tested[x][y] = 1
#判断本格子
if $game_map.event_judge(x, y) != -1 #判断在x,y的位置有没有事件
#获取事件名字
@id = $game_map.event_judge(x, y)
@name = $game_map.events[@id].event.name.to_i
@event_connected[@testing_event].push @id
else #在x,y的位置没有事件
if $game_map.data[x, y, 0] == 384 #x,y的位置是草地
test(x + 1, y) if @tested[x + 1][y] != 1
test(x - 1, y) if @tested[x - 1][y] != 1
test(x, y + 1) if @tested[x][y + 1] != 1
test(x, y - 1) if @tested[x][y - 1] != 1
elsif $game_map.data[x, y, 0] == 388 #x,y的位置是树桩
#结束此块判断
end
end
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