Project1

标题: 如何判断主角上下左右的事件id? [打印本页]

作者: 幼吾幼    时间: 2014-11-2 13:26
标题: 如何判断主角上下左右的事件id?
如何判断主角八个方向(上,下,左,右,左上,左下,右上,右下)的事件id?
最好是用脚本。(用事件我也会啊~不过太麻烦,需要好多个变量)
作者: taroxd    时间: 2014-11-2 13:33
好好用事件。
想要用脚本的话,你可以自己研究一下 Game_Interpreter。研究不出来的话就老老实实用事件吧,毕竟事件不麻烦。
作者: VIPArcher    时间: 2014-11-2 14:18
本帖最后由 VIPArcher 于 2014-11-2 14:45 编辑

随便写的给你偷懒用吧。事件调用 get_direv_id(d) 返回d所指定的位置的事件ID
使用示范:例如在变量操作时可以事件-变量操作-脚本-输入:get_direv_id(7)
就可以把主角左上角的事件ID存入这个变量
又或者直接事件脚本$game_variables[1] =  
get_direv_id(7)
同理
  1. class Game_Interpreter
  2.   # 获取d方向上的事件ID不存在事件返回0
  3.   #    d:数字键盘方向对应的数字
  4.   #     7   8   9
  5.   #      ↖ ↑ ↗
  6.   #     4← 0|5 →6
  7.   #      ↙ ↓ ↘
  8.   #     1   2   3
  9.   def get_direv_id(d)
  10.     gp = $game_player
  11.     case d
  12.     when 1 then x,y = gp.x - 1,gp.y + 1
  13.     when 2 then x,y = gp.x    ,gp.y + 1
  14.     when 3 then x,y = gp.x + 1,gp.y + 1
  15.     when 4 then x,y = gp.x - 1,gp.y
  16.     when 6 then x,y = gp.x + 1,gp.y
  17.     when 7 then x,y = gp.x - 1,gp.y - 1
  18.     when 8 then x,y = gp.x    ,gp.y - 1
  19.     when 9 then x,y = gp.x + 1,gp.y - 1
  20.     else x,y = gp.x    ,gp.y
  21.     end
  22.     return $game_map.event_id_xy(x, y)
  23.   end
  24. end
复制代码





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