查看: 2034|回复: 3

[已经解决] 如何判断指定XY坐标上的事件的ID

[复制链接]
梦石
0
星屑
1821
在线时间
2528 小时
注册时间
2010-10-12
回帖
1336

开拓者

发表于 2012-4-28 21:21:38 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 刺夜之枪 于 2012-4-28 21:21 编辑

$game_variables[变量id] = $game_map.check_event(x, y)这个脚本很好,但是不能判断指定XY上没有事件的情况!   寻一个脚本可以不但能判断指定XY坐标上的事件的ID,如果指定XY上没有事件就为返回0

{:2_269:}{:2_269:}{:2_269:}{:2_269:}{:2_269:}{:2_269:}{:2_269:}{:2_269:}{:2_269:}{:2_269:}{:2_269:}{:2_269:}{:2_269:}
梦石
0
星屑
94
在线时间
648 小时
注册时间
2009-2-3
回帖
208
发表于 2012-4-28 21:54:51 | 显示全部楼层
那你就用开关呗 如果某事件XY等于指定坐标 则开关打开 如果开关为关闭的时候 你可以进行某些事情

点评

不行哦-。-  发表于 2012-4-28 21:56
回复

使用道具 举报

梦石
0
星屑
275
在线时间
1373 小时
注册时间
2005-10-16
回帖
5038

贵宾

发表于 2012-4-28 22:50:58 | 显示全部楼层
本帖最后由 亿万星辰 于 2012-7-7 07:49 编辑

自己加行 return 0 就行了
  1.   #--------------------------------------------------------------------------
  2.   # ● 获取指定位置的事件 ID
  3.   #     x          : X 坐标
  4.   #     y          : Y 坐标
  5.   #--------------------------------------------------------------------------
  6.   def check_event(x, y)
  7.     for event in $game_map.events.values
  8.       if event.x == x and event.y == y
  9.         return event.id
  10.       end
  11.     end
  12.     return 0
  13.   end
复制代码
$game_variables[变量id] = $game_map.check_event(x, y)
然后只要判断 $game_variables[变量id] 就能知道是不是没事件了~有事件的情况下是数字,没有的话是0。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  1.   #--------------------------------------------------------------------------
  2.   # ● 获取指定位置的事件 ID
  3.   #     x          : X 坐标
  4.   #     y          : Y 坐标
  5.   #--------------------------------------------------------------------------
  6.   def check_event(x, y)
  7.     result = []
  8.     for event in $game_map.events.values
  9.       if event.x == x and event.y == y
  10.         result.push(event.id)
  11.       end
  12.     end
  13.     return result
  14.   end
复制代码
$game_variables[变量id] = $game_map.check_event(x, y)
然后只要判断 $game_variables[变量id].empty? 就能知道是不是没事件了~false的情况下是有事件,没有的话是true。
要获取其中的元素可以用each或者其他的方法从数组里获取。

点评

会返回其中的一个~是想要都返回?  发表于 2012-7-7 07:46
亿万星辰君,我最近又用到这个脚本了。如果两个事件叠加在一起时判断会出现什么结果  发表于 2012-7-3 23:24
你得判断 $game_variables[变量id].is_a?(Array) 真的话就是没事件,假的话就是有事件了~  发表于 2012-4-29 13:35
怎么用了$game_variables[变量id].type没反应  发表于 2012-4-29 10:00

评分

参与人数 1星屑 +14 收起 理由
刺夜之枪 + 14 认可答案

查看全部评分

我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

双子人

梦石
0
星屑
3205
在线时间
3619 小时
注册时间
2009-4-4
回帖
3901

开拓者

发表于 2012-4-29 07:59:12 | 显示全部楼层
  1. class Game_Map
  2.   #--------------------------------------------------------------------------
  3.   # ● 在x,y处是否存在事件
  4.   #--------------------------------------------------------------------------
  5.   def have_an_event?(x,y)
  6.     for event in $game_map.events.values
  7.       if event.x == x and event.y == y
  8.         return true
  9.       end
  10.     end
  11.     return false
  12.   end
  13. end
复制代码
可以直接插入。先判断条件分歧:$game_map.have_an_event?(x,y)
然后满足条件了就在用$game_variables[变量id] = $game_map.check_event(x, y)的方法

点评

game__variables[137],$game__variables[136]) “_”出现两次了  发表于 2012-4-30 08:50
$game_map.have_an_event?($game__variables[137],$game__variables[136])这样写也有  发表于 2012-4-29 09:47
$game_map.have_an_event?($game_map.events[@event_id].x,$game_map.events[@event_id].y +1) 为什么这个有语法错误  发表于 2012-4-29 09:41
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部