| 
 
| 赞 | 2 |  
| VIP | 33 |  
| 好人卡 | 33 |  
| 积分 | 15 |  
| 经验 | 54000 |  
| 最后登录 | 2025-10-31 |  
| 在线时间 | 1298 小时 |  
 Lv3.寻梦者 
	梦石0 星屑1503 在线时间1298 小时注册时间2012-8-4帖子749 | 
5楼
 
 发表于 2014-9-18 23:11:43
手机端发表。
|
只看该作者 
| 夜狠简单 发表于 2014-9-18 19:06楼主稍等。我帮你做。你觉得他那样判断一个事件一个事件写麻烦对吧
找到scene_map脚本页
 然后看下面的
 if input.trigger?(input:: F7)
 .......
 end
 这段内容就是计算事件和主角距离的了
 
 # 按照地图、实例、主角的顺序刷新      # (本更新顺序不会在满足事件的执行条件下成为给予角色瞬间移动      #  的机会的重要因素)      $game_map.update      $game_system.map_interpreter.update      $game_player.update      # 系统 (计时器)、画面刷新      $game_system.update      $game_screen.update            if Input.trigger?(Input::F7)         a=$game_map.events.size #取地图事件个数         $zuobiao=[]         $zuobiaofz=[]         $geshu=[]         $xunhuanjishu=0         b=$game_player.x#取主角x坐标         c=$game_player.y#取主角y坐标         for i in 1..a            x=$game_map.events.x #取事件x坐标            y=$game_map.events.y #取事件y坐标            d=Math.sqrt((b-x)**2+(c-y)**2) #计算两点间的距离            $zuobiao[i-1]=d            $zuobiaofz[i-1]=d          end       #数组按小到大排列顺序       e=$zuobiaofz.sort![0]       #计算事件离主角距离相同的情况       $zuobiao.each{|i|       $geshu.push $xunhuanjishu  if i==e         $xunhuanjishu+=1 }       #输出离主角最近的事件ID和事件名称       for g in 0..$geshu.size-1       h=$geshu[g]       p $game_map.events[h+1].id#暂时定义为用p输出,这里可以改为自己喜欢的方式       end      end             # 如果主角在场所移动中就中断循环      unless $game_temp.player_transferring        break      end      # 执行场所移动
 | 
 |