Project1

标题: 一个角色跟随另一个事件 [打印本页]

作者: 876加几    时间: 2013-10-3 23:00
标题: 一个角色跟随另一个事件
本帖最后由 876加几 于 2013-10-3 23:03 编辑

脚本:
  1. class Game_Character
  2.   #--------------------------------------------------------------------------
  3.   # ● 接近事件
  4.   #  aaa  : 事件ID
  5.   #--------------------------------------------------------------------------
  6.   def move_toward_event(aaa)
  7.     # 求得与主角的坐标差
  8.     sx = @x - $game_map.events[aaa].x
  9.     sy = @y - $game_map.events[aaa].y
  10.     # 坐标相等情况下
  11.     if sx == 0 and sy == 0
  12.       return
  13.     end
  14.     # 求得差的绝对值
  15.     abs_sx = sx.abs
  16.     abs_sy = sy.abs
  17.     # 横距离与纵距离相等的情况下
  18.     if abs_sx == abs_sy
  19.       # 随机将边数增加 1
  20.       rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
  21.     end
  22.     # 横侧距离长的情况下
  23.     if abs_sx > abs_sy
  24.       # 左右方向优先。向主角移动
  25.       sx > 0 ? move_left : move_right
  26.       if not moving? and sy != 0
  27.         sy > 0 ? move_up : move_down
  28.       end
  29.     # 竖侧距离长的情况下
  30.     else
  31.       # 上下方向优先。向主角移动
  32.       sy > 0 ? move_up : move_down
  33.       if not moving? and sx != 0
  34.         sx > 0 ? move_left : move_right
  35.       end
  36.     end
  37.   end
  38. end
复制代码
方法:插入到Main前或去掉最后一行和第一行,置入Game_Character3最后一行前面。
调用方法:设置移动路线:脚本:move_toward_event(事件ID)
我测试了一下,在地图上弄一匹马,然后一个人来追马,用这个脚本就完成了效果。
范例:
Project23.zip (201.11 KB, 下载次数: 100)
作者: 恐惧剑刃    时间: 2013-10-3 23:21
本帖最后由 恋′挂机 于 2013-10-4 08:52 编辑

我好像见过类似脚本




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