设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1833|回复: 2
打印 上一主题 下一主题

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

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
137 小时
注册时间
2014-1-27
帖子
71
跳转到指定楼层
1
发表于 2014-11-2 13:26:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

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

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10074
在线时间
5020 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

3
发表于 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 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

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

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-3 04:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表