Project1

标题: 求与某事件最近距离的脚本写法 [打印本页]

作者: stella    时间: 2012-9-21 14:14
标题: 求与某事件最近距离的脚本写法
比如地图上有1、2、3、4、5五个事件,我希望在2、3、4、5号中求得与1号事件距离最近的一个事件,并把该事件的编号提取出来
作者: 唐门草楹    时间: 2012-9-21 15:28
##代码,将以下部分直接粘贴到事件页的脚本里即可########
a=[]
for i in 1..5
a[i]=(($game_map.events[i].x-
$game_player.x)+($game_map.events[i].y-
$game_player.y)).abs
end
for i in 1..5
if a.min == a[i]
$game_variables[1]=i
end
end

###########################
以上脚本将距主角距离最小的事件的ID号存在系统变量1里
由于默认的脚本页只允许这么多版面,因此此脚本不是最优脚本,但是能完成有关功能
要注意的是距离的算法。由于RMXP是四方向,因此我们的距离是直接把X坐标差与Y坐标差加起来算得。
作者: zxcgood2009    时间: 2012-9-21 15:50
我记得有个小地图脚本,通过鼠标点击,寻找最佳路线的。
作者: stella    时间: 2012-9-21 18:19
唐门草楹 发表于 2012-9-21 15:28
##代码,将以下部分直接粘贴到事件页的脚本里即可########
a=[]
for i in 1..5

谢谢,虽然我要的是事件与事件的距离,不过改一改也行
作者: 唐门草楹    时间: 2012-9-21 18:21
本帖最后由 唐门草楹 于 2012-9-21 18:22 编辑
stella 发表于 2012-9-21 18:19
谢谢,虽然我要的是事件与事件的距离,不过改一改也行


##代码,将以下部分直接粘贴到事件页的脚本里即可########
a=[]
for i in 2..5
a=($game_map.events.x-
$game_map.events[1].x).abs+($game_map.events.y-
$game_map.events[1].y).abs
end
for i in 2..5
if a.min == a
$game_variables[1]=i
end
end

###########################




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