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

Project1

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

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

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1759
在线时间
2524 小时
注册时间
2010-10-12
帖子
1454

开拓者

跳转到指定楼层
1
发表于 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:}

Lv1.梦旅人

梦石
0
星屑
94
在线时间
648 小时
注册时间
2009-2-3
帖子
238
2
发表于 2012-4-28 21:54:51 | 只看该作者
那你就用开关呗 如果某事件XY等于指定坐标 则开关打开 如果开关为关闭的时候 你可以进行某些事情

点评

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

使用道具 举报

Lv2.观梦者

梦石
0
星屑
270
在线时间
1373 小时
注册时间
2005-10-16
帖子
5113

贵宾

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

查看全部评分

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

使用道具 举报

Lv3.寻梦者

双子人

梦石
0
星屑
3165
在线时间
3616 小时
注册时间
2009-4-4
帖子
4154

开拓者

4
发表于 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
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-2-22 02:02

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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