Project1

标题: 八方向,命令NPC事件接近主角怎么算法.还是自己算吧. [打印本页]

作者: 66rpg学习    时间: 2009-4-10 20:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: 奶油Da蛋糕    时间: 2009-9-12 19:34
  1. def move_toward_player
  2.     # 求得与主角的坐标差
  3.     sx = @x - $game_player.x
  4.     sy = @y - $game_player.y
  5.     # 坐标相等情况下
  6.     if sx == 0 and sy == 0
  7.       return
  8.     end
  9.     # 求得差的绝对值
  10.     abs_sx = sx.abs
  11.     abs_sy = sy.abs
  12.     # 横距离与纵距离相等的情况下
  13.     if abs_sx == abs_sy
  14.       #if sx > 0
  15.       # if sy > 0
  16.       # move_upper_left
  17.       # elsif sy < 0
  18.       # move_lower_left
  19.       # end
  20.      #elsif sx < 0
  21.      #  if sy > 0
  22.      #  move_upper_right
  23.      #elsif sy < 0
  24.      #  move_lower_right
  25.      #end
  26.      #end   
  27.      rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
  28.     end
  29.     # 横侧距离长的情况下
  30.     if abs_sx > abs_sy
  31.       # 左右方向优先。向主角移动
  32.      # sx > 0 ? move_left : move_right
  33.       if sx > 0
  34.        if sy > 0
  35.        move_upper_left
  36.        elsif sy < 0
  37.        move_lower_left
  38.      else
  39.        move_left
  40.        end
  41.      else
  42.        if sy > 0
  43.        move_upper_right
  44.      elsif sy < 0
  45.        move_lower_right
  46.      else
  47.        move_right
  48.      end
  49.      end
  50.       if not moving? and sy != 0
  51.         sy > 0 ? move_up : move_down
  52.       end
  53.     # 竖侧距离长的情况下
  54.     else abs_sx < abs_sy
  55.       # 上下方向优先。向主角移动
  56.       #sy > 0 ? move_up : move_down
  57.       if sy > 0
  58.         if sx > 0
  59.           move_upper_left
  60.         elsif sx < 0
  61.           move_upper_right
  62.         else
  63.           move_up
  64.         end
  65.       else
  66.         if sx > 0
  67.        move_lower_left
  68.      elsif sx < 0
  69.        move_lower_right
  70.      else
  71.        move_down
  72.      end
  73.      end
  74.       if not moving? and sx != 0
  75.         sx > 0 ? move_left : move_right
  76.       end
  77.     end
  78.   end
复制代码
帮你写了个。。。




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