我跟你说有脚本哦
|
本帖最后由 limaolinghu 于 2012-7-9 11:32 编辑 #-------------------------------------------------------------------------- # ● 设置事件 #-------------------------------------------------------------------------- def setup_events @events = {} # 地图事件 event_index = 0 for event_index in @map.events.keys @events[event_index] = Game_Event.new(@map_id, @map.events[event_index]) end # 在Game_Map的setup_events里面创建5个跟随者,图片这里是随便写的,可以替换为真正的主角行走图 fellow_event1 = RPG::Event.new(5, 10) fellow_event1.name = "fellow1" fellow_event1.pages[0].graphic.character_name = "Evil" fellow_event1.pages[0].graphic.character_index = 1 fellow_event1.pages[0].move_speed = 4 fellow_event1.pages[0].through = 1 fellow_event2 = RPG::Event.new(5, 10) fellow_event2.name = "fellow2" fellow_event2.pages[0].graphic.character_name = "Evil" fellow_event2.pages[0].graphic.character_index = 2 fellow_event2.pages[0].move_speed = 4 fellow_event2.pages[0].through = 1 fellow_event3 = RPG::Event.new(5, 10) fellow_event3.name = "fellow3" fellow_event3.pages[0].graphic.character_name = "Evil" fellow_event3.pages[0].graphic.character_index = 3 fellow_event3.pages[0].move_speed = 4 fellow_event3.pages[0].through = 1 fellow_event4 = RPG::Event.new(5, 10) fellow_event4.name = "fellow4" fellow_event4.pages[0].graphic.character_name = "Evil" fellow_event4.pages[0].graphic.character_index = 4 fellow_event4.pages[0].move_speed = 4 fellow_event4.pages[0].through = 1 fellow_event5 = RPG::Event.new(5, 10) fellow_event5.name = "fellow5" fellow_event5.pages[0].graphic.character_name = "Evil" fellow_event5.pages[0].graphic.character_index = 5 fellow_event5.pages[0].move_speed = 4 fellow_event5.pages[0].through = 1 #将者5个跟随者事件,添加到当前地图事件列表中 @events[event_index+=1] = Game_Event.new(@map_id, fellow_event1) @events[event_index+=1] = Game_Event.new(@map_id, fellow_event2) @events[event_index+=1] = Game_Event.new(@map_id, fellow_event3) @events[event_index+=1] = Game_Event.new(@map_id, fellow_event4) @events[event_index+=1] = Game_Event.new(@map_id, fellow_event5) @common_events = {} # 公共事件 for i in 1...$data_common_events.size @common_events = Game_CommonEvent.new(i) end end 在Game_Player里面: #-------------------------------------------------------------------------- # ● 方向键移动处理 #-------------------------------------------------------------------------- def move_by_input return unless movable? return if $game_map.interpreter.running? #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 ��� |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2025-6-11 23:08
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.