Project1
标题:
[已解决]if $game_map.map_id == 1 如果有很多怎么表达能简练?
[打印本页]
作者:
miantouchi
时间:
2019-9-5 21:44
标题:
[已解决]if $game_map.map_id == 1 如果有很多怎么表达能简练?
本帖最后由 miantouchi 于 2019-9-6 07:20 编辑
if $game_map.map_id == 1
.....
else
.....
end
如果有很多怎么表达能简练?
我现在是地图ID=1的话就操作。。。。
如果以后有很多张地图,不连续的怎么表达,如果像我下面这么写太长了,不利于维护,有没有什么好的办法
if $game_map.map_id == 1 or $game_map.map_id == 2 or $game_map.map_id == 5 or $game_map.map_id == 12
.....
else
.....
end
作者:
soulsaga
时间:
2019-9-5 22:07
本帖最后由 soulsaga 于 2019-9-5 22:09 编辑
if [1,2,5,12].include?($game_map.map_id)
作者:
soulsaga
时间:
2019-9-6 16:08
本帖最后由 soulsaga 于 2019-9-6 20:36 编辑
顺帶一提..数组判断大於小於可以用all?
RUBY 代码
复制
if
[
1
,
2
,
3
]
.
all
?
{
|v| v >
$game_map
.
map_id
}
if
[
1
,
2
,
3
]
.
all
?
{
|v| v >
$game_map
.
map_id
}
'
F1的Enumerable项有介绍
all?
all? {|item| ... }
当所有元素都为真时,返回 true。若某元素为假时,立即返回 false。
若带块调用时,会依次为各个元素来执行块的内容,若所有的结果都为真,则返回 true。一旦块返回假时, 立即返回 false。
p [1,2,3].all? {|v| v > 0} # => true
p [1,2,3].all? {|v| v > 1} # => false
any?
any? {|item| ... }
当所有元素都为假时,返回 false。一旦某元素为真时,立即返回 true。
若带块调用时,会依次为各个元素来执行块的内容,若所有的结果都为假,则返回 false。一旦块返回真时,立即返回 true。
p [1,2,3].any? {|v| v > 3} # => false
p [1,2,3].any? {|v| v > 1} # => true
作者:
灯笼菜刀王
时间:
2019-9-6 16:40
case $game_map.map_id
when 1,3,5
改革春风吹满地
when "A", "B","C",
中国人民真争气
else
齐德隆
end
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1