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

Project1

 找回密码
 注册会员
搜索
楼主: 雷欧纳德
打印 上一主题 下一主题

RUBY问题收集帖

 关闭 [复制链接]

Lv1.梦旅人

有事烧纸

梦石
0
星屑
154
在线时间
509 小时
注册时间
2005-10-22
帖子
6982

贵宾VX城市地图大赛冠军第1届RMTV比赛冠军第1届TG大赛冠军

21
 楼主| 发表于 2006-12-22 00:17:33 | 只看该作者
以下引用六脉神剑于2006-12-21 8:45:00的发言:

一个遗留了很久的问题:
Interpreter 7的最后定义事件中脚本的解释器里,有这么个东西:

   # 返回值为 false 的情况下
   if result == false
     # 结束
     return false
   end
   # 继续
   return true


这样当在事件第一行的脚本中写xx = false的时候,result返回了false,接着这个方法也跟着返回,于是进入了无限恶性循环。
这里不知道为什么要做这个判断。尝试把这里改为返回永真,之后也没有发现运行不正常。


恩、其实改为永真也没什么不正常,那个只影响到推进索引@index而已,不推进就不会继续执行,其实改为永真还更好,因为有时候有的人在事件中写脚本的时候,比如关闭开关1号
$game_switches[1] = false ,这样就出现问题了,程序会卡住,但他怎么也看不出原因在哪,又没有死循环什么的,所以需要注意下这个问题。
神隐中,偶尔诈尸
回复 支持 反对

使用道具 举报

Lv1.梦旅人

月下可怜人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2005-11-23
帖子
4085

第1届短篇游戏比赛亚军

22
发表于 2006-12-22 02:30:21 | 只看该作者
$game_switches[1] = false ,这样就出现问题了,程序会卡住,但他怎么也看不出原因在哪,又没有死循环什么的,所以需要注意下这个问题。




话说这个问题偶遇到不素一次两次了,就是新建的变量$new_name,放在条件分歧中也常常遇到这个问题,最后只好把布尔值改成0和1两个整数来用.......原来如此,原来如此,

话说改成真,真的没副作用吗???
纵然千里外,我等雁归来。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

有事烧纸

梦石
0
星屑
154
在线时间
509 小时
注册时间
2005-10-22
帖子
6982

贵宾VX城市地图大赛冠军第1届RMTV比赛冠军第1届TG大赛冠军

23
 楼主| 发表于 2006-12-22 06:13:02 | 只看该作者
以下引用美兽于2006-12-21 18:30:21的发言:
话说改成真,真的没副作用吗???

偶觉得米副作用。。。- -b
神隐中,偶尔诈尸
回复 支持 反对

使用道具 举报

Lv1.梦旅人

66RPG站长

梦石
0
星屑
54
在线时间
615 小时
注册时间
2005-10-10
帖子
5734

RMVX自由创作大赛亚军第2届短篇游戏比赛亚军第5届短篇游戏比赛冠军

24
发表于 2006-12-22 06:43:32 | 只看该作者
    result = eval(script)
    # 返回值为 false 的情况下
    if result == false
      # 结束
      return false
    end
    # 继续
    return true

这个东西和

return eval(script)

有什么区别?……{/gg}

这个eval是怎么return的?为何第一行是=false就直接return一个false?


题外话,感觉小夏像是某种答题机一类的。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

有事烧纸

梦石
0
星屑
154
在线时间
509 小时
注册时间
2005-10-22
帖子
6982

贵宾VX城市地图大赛冠军第1届RMTV比赛冠军第1届TG大赛冠军

25
 楼主| 发表于 2006-12-22 07:22:31 | 只看该作者
以下引用柳柳于2006-12-21 22:43:32的发言:

   result = eval(script)
   # 返回值为 false 的情况下
   if result == false
     # 结束
     return false
   end
   # 继续
   return true

这个东西和

return eval(script)

有什么区别?……

这个eval是怎么return的?为何第一行是=false就直接return一个false?


其实没区别…… 就算返回nil也一样……

题外话,感觉小夏像是某种答题机一类的。

{/gg}{/gg}{/gg}
神隐中,偶尔诈尸
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
66
在线时间
7 小时
注册时间
2005-10-22
帖子
391

贵宾

26
发表于 2006-12-23 13:04:23 | 只看该作者
为何第一行是=false就直接return一个false?

我也没懂这个,小夏怎么……好像无视了这个问题 >__>
回复 支持 反对

使用道具 举报

Lv1.梦旅人

有事烧纸

梦石
0
星屑
154
在线时间
509 小时
注册时间
2005-10-22
帖子
6982

贵宾VX城市地图大赛冠军第1届RMTV比赛冠军第1届TG大赛冠军

27
 楼主| 发表于 2006-12-23 15:38:16 | 只看该作者
以下引用六脉神剑于2006-12-23 5:04:23的发言:


为何第一行是=false就直接return一个false?

{/gg}{/gg} 关于eval的返回值?? 怎么可能第一行是false就返回false呢。。。返回的是最后一个计算式子的值的
事件脚本:false
          true
最后返回true咯。。-v-
神隐中,偶尔诈尸
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
66
在线时间
7 小时
注册时间
2005-10-22
帖子
391

贵宾

28
发表于 2006-12-23 19:26:01 | 只看该作者
只要在false那个算式上面写有任何东西(包括注释)就可以不返回false……{/gg}
# 第一行
a = false;

也就是说……难道,只要脚本中不是只有一个值为false的算式,result就不会返回false?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2006-12-20
帖子
213
29
发表于 2006-12-27 04:51:03 | 只看该作者
以下引用六脉神剑于2006-12-23 11:26:01的发言:

只要在false那个算式上面写有任何东西(包括注释)就可以不返回false……

# 第一行
a = false;

也就是说……难道,只要脚本中不是只有一个值为false的算式,result就不会返回false?


不是这样的吧``` {/gg}  只要脚本有最后计算的那条语句的值为false 就会返回false的,不论第一行是否有东西


哼哼。。。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
2 小时
注册时间
2006-11-10
帖子
931
30
发表于 2007-1-6 23:43:18 | 只看该作者
=v=继续问基本问题……

什么是堆栈和栈深度过深……

……………………啊咧?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-18 08:04

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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