脚本:
- class Game_Character #-------------------------------------------------------------------------- # ● 接近事件 # aaa : 事件ID #-------------------------------------------------------------------------- def move_toward_event(aaa) # 求得与主角的坐标差 sx = @x - $game_map.events[aaa].x sy = @y - $game_map.events[aaa].y # 坐标相等情况下 if sx == 0 and sy == 0 return end # 求得差的绝对值 abs_sx = sx.abs abs_sy = sy.abs # 横距离与纵距离相等的情况下 if abs_sx == abs_sy # 随机将边数增加 1 rand(2) == 0 ? abs_sx += 1 : abs_sy += 1 end # 横侧距离长的情况下 if abs_sx > abs_sy # 左右方向优先。向主角移动 sx > 0 ? move_left : move_right if not moving? and sy != 0 sy > 0 ? move_up : move_down end # 竖侧距离长的情况下 else # 上下方向优先。向主角移动 sy > 0 ? move_up : move_down if not moving? and sx != 0 sx > 0 ? move_left : move_right end end end end复制代码
复制代码方法:插入到Main前或去掉最后一行和第一行,置入Game_Character3最后一行前面。
调用方法:设置移动路线:脚本:move_toward_event(事件ID)
我测试了一下,在地图上弄一匹马,然后一个人来追马,用这个脚本就完成了效果。
范例:
本帖来自P1论坛作者876加几,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:
https://rpg.blue/forum.php?mod=viewthread&tid=334228 若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。