查看: 2337|回复: 2

[已经解决] 如何判断主角上下左右的事件id?

[复制链接]
梦石
0
星屑
50
在线时间
137 小时
注册时间
2014-1-27
回帖
48
发表于 2014-11-2 13:26:43 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
如何判断主角八个方向(上,下,左,右,左上,左下,右上,右下)的事件id?
最好是用脚本。(用事件我也会啊~不过太麻烦,需要好多个变量)

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-11-2 13:33:24 | 显示全部楼层
好好用事件。
想要用脚本的话,你可以自己研究一下 Game_Interpreter。研究不出来的话就老老实实用事件吧,毕竟事件不麻烦。

评分

参与人数 1星屑 +132 收起 理由
VIPArcher + 132 我很赞同

查看全部评分

回复

使用道具 举报

无限の剣制

梦石
0
星屑
10450
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2014-11-2 14:18:17 | 显示全部楼层
本帖最后由 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
复制代码

点评

你得确保楼主知道什么叫“返回”  发表于 2014-11-2 14:28

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部