赞 | 0 |
VIP | 1 |
好人卡 | 0 |
积分 | 1 |
经验 | 1773 |
最后登录 | 2014-4-18 |
在线时间 | 8 小时 |
Lv1.梦旅人 ℃ake
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 8 小时
- 注册时间
- 2009-6-6
- 帖子
- 787
|
- def move_toward_player
- # 求得与主角的坐标差
- sx = @x - $game_player.x
- sy = @y - $game_player.y
- # 坐标相等情况下
- if sx == 0 and sy == 0
- return
- end
- # 求得差的绝对值
- abs_sx = sx.abs
- abs_sy = sy.abs
- # 横距离与纵距离相等的情况下
- if abs_sx == abs_sy
- #if sx > 0
- # if sy > 0
- # move_upper_left
- # elsif sy < 0
- # move_lower_left
- # end
- #elsif sx < 0
- # if sy > 0
- # move_upper_right
- #elsif sy < 0
- # move_lower_right
- #end
- #end
- rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
- end
- # 横侧距离长的情况下
- if abs_sx > abs_sy
- # 左右方向优先。向主角移动
- # sx > 0 ? move_left : move_right
- if sx > 0
- if sy > 0
- move_upper_left
- elsif sy < 0
- move_lower_left
- else
- move_left
- end
- else
- if sy > 0
- move_upper_right
- elsif sy < 0
- move_lower_right
- else
- move_right
- end
- end
- if not moving? and sy != 0
- sy > 0 ? move_up : move_down
- end
- # 竖侧距离长的情况下
- else abs_sx < abs_sy
- # 上下方向优先。向主角移动
- #sy > 0 ? move_up : move_down
- if sy > 0
- if sx > 0
- move_upper_left
- elsif sx < 0
- move_upper_right
- else
- move_up
- end
- else
- if sx > 0
- move_lower_left
- elsif sx < 0
- move_lower_right
- else
- move_down
- end
- end
- if not moving? and sx != 0
- sx > 0 ? move_left : move_right
- end
- end
- end
复制代码 帮你写了个。。。 |
|