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

Project1

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

[已经解决] 获取有多个事件重叠的地方的事件id

[复制链接]

Lv1.梦旅人

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

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

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

x
获取有多个事件重叠的地方的事件id时,只能获取其中一个,有没有办法获得同一坐标的其他事件id?

Lv4.逐梦者 (版主)

梦石
0
星屑
6901
在线时间
7028 小时
注册时间
2013-11-2
帖子
1344

开拓者剧作品鉴家

2
发表于 2017-1-20 22:28:42 | 只看该作者
Game_Map 里面的 events_xy(x,y) 方法获取该坐标的所有事件实例。(呼叫法是 $game_map.events_xy(x,y) )

数组里面的是事件实例,那么要获得ID的话要用数组的collect方法来将事件的ID提取出来。

event_ids = $game_map.events_xy(x,y).collect{|event| event.id}

评分

参与人数 1星屑 +30 收起 理由
QQ蚊子湯 + 30 交學費!

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
137 小时
注册时间
2014-1-27
帖子
71
3
 楼主| 发表于 2017-1-25 15:03:06 | 只看该作者
RaidenInfinity 发表于 2017-1-20 22:28
Game_Map 里面的 events_xy(x,y) 方法获取该坐标的所有事件实例。(呼叫法是 $game_map.events_xy(x,y) )
...

假如有多个事件重叠,那么以上脚本所判定出的事件id是那个事件的?
单纯判定一个地方的事件的id的话,可以用   $game_map.event_id_xy(x,.y)=……
但是假如有重叠事件,用   $game_map.event_id_xy(x,.y)=…… 只会判定出一个事件id。
不懂,大神求解。
回复 支持 1 反对 0

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
6901
在线时间
7028 小时
注册时间
2013-11-2
帖子
1344

开拓者剧作品鉴家

4
发表于 2017-1-25 15:34:33 | 只看该作者
RUBY 代码复制
  1. def event_id_xy(x, y)
  2.         list = events_xy(x, y)
  3.         list.empty? ? 0 : list[0].id
  4. end


event_id_xy的第一行是呼叫events_xy,获得一个装着所有符合坐标的事件对象的数组。
比如这个坐标上有 3号事件,5号事件,11号事件,20号事件重叠着,那么…
在运行了list = events_xy(x, y)之后,
list 所存着的是 [3号事件,5号事件,11号事件,20号事件] 这个数组。

第二行,list.empty? ? 0 : list[0].id 的意思是:

RUBY 代码复制
  1. if list.empty?
  2.    0
  3. else
  4.   list[0].id
  5. end


而我们要知道的是,在Ruby语言,方法会自动将end前面所执行的那一句表达式得出来的值作为返回数据。
所以 如果list是空的,也就是没有事件在这个坐标上,event_id_xy 会返回 0
否则,就返回list的第一个事件的id。

所以上面的那个例子中,event_id_xy返回的会是3。
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 05:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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