#loop当前地图所有事件,如果存在跟随者,则记录该跟随者的先驱对象
#其中,第一个跟随者的先驱是主角,其他跟随者则跟随前一个跟随者
for i in $game_map.events.keys.sort
if $game_map.events.event.name == "fellow1"
@before_move_locations["fellow1"] = self.clone
fellow1_index = i
elsif $game_map.events.event.name == "fellow2"
@before_move_locations["fellow2"] = $game_map.events[fellow1_index].clone
fellow2_index = i
elsif $game_map.events.event.name == "fellow3"
@before_move_locations["fellow3"] = $game_map.events[fellow2_index].clone
fellow3_index = i
elsif $game_map.events.event.name == "fellow4"
@before_move_locations["fellow4"] = $game_map.events[fellow3_index].clone
fellow4_index = i
elsif $game_map.events.event.name == "fellow5"
@before_move_locations["fellow5"] = $game_map.events[fellow4_index].clone
fellow5_index = i
end
end
#记录一个是否真正移动过得变量
moved = true
case Input.dir4
when 2; move_down
when 4; move_left
when 6; move_right
when 8; move_up
else
moved = false
end
#如果地图事件中有跟随者,并且主角确实移动过,则让跟随者朝着先驱的方向移动
fellows = ["fellow1", "fellow2", "fellow3", "fellow4", "fellow5"]
for event in $game_map.events.values
if fellows.include?(event.event.name) and moved
event.follow_preemptor
end
end
end
Game_Event里面添加一个简单的函数,来跟随先驱:
#--------------------------------------------------------------------------
# ● 跟随前者
#--------------------------------------------------------------------------
def follow_preemptor
if @x < $game_player.before_move_locations[@event.name].x
move_right
elsif @x > $game_player.before_move_locations[@event.name].x
move_left
elsif @y > $game_player.before_move_locations[@event.name].y
move_up
elsif @y < $game_player.before_move_locations[@event.name].y
move_down
end
end
end
���作者: 铅笔描绘的思念 时间: 2012-7-21 22:08
我跟你说有脚本哦