Project1

标题: TypeError?如拷贝Fixnum对象?clone、dup无法 [打印本页]

作者: DeathKing    时间: 2009-8-28 14:40
标题: TypeError?如拷贝Fixnum对象?clone、dup无法
帮群里以为同仁改脚本。是出发的TypeError。
出错的语句如下:

  1.     distance = ($game_player.x - self.x).abs + ($game_player.y - self.y).abs
复制代码


一开始,他讲的大概是 Nil can't be coerced into fixnum。我就想,哪个是nil哦?于是构造语句:

  1.     p $game_player.x.class, self.x.class,  $game_player.y.class, self.y.class
复制代码

结果回显的都是Fixnum。

我就奇怪了,那拿个是nil捏?就算是p 他们的值,也只会出现0,也没出现nil啊。

我怀疑是不是abs的问题,删掉后发现不是。

又构造语句:

  1.     tempA   = ($game_player.x - self.x).abs.dup
  2.     tempB   = ($game_player.y - self.y).abs.dup
  3.     distance = tempA = tempB
复制代码

当然,她说不能被dup,我换成clone也不行,这是怎么会是捏?求解。为谢
作者: DeathKing    时间: 2009-8-28 14:41
标题: TypeError引发的关于Fixnum的问题,dup、clone解决无法
一开始,他讲的大概是 Nil can't be coerced into fixnum。我就想,哪个是nil哦?于是构造语句:

  1.     p $game_player.x.class, self.x.class,  $game_player.y.class, self.y.class
复制代码

结果回显的都是Fixnum。

我就奇怪了,那拿个是nil捏?就算是p 他们的值,也只会出现0,也没出现nil啊。

我怀疑是不是abs的问题,删掉后发现不是。

又构造语句:

  1.     tempA   = ($game_player.x - self.x).abs.dup
  2.     tempB   = ($game_player.y - self.y).abs.dup
  3.     distance = tempA = tempB
复制代码

当然,她说不能被dup,我换成clone也不行,这是怎么会是捏?求解。为谢
作者: IamI    时间: 2009-8-28 14:50
本帖最后由 IamI 于 2009-8-28 14:54 编辑

Fixnum是不能被clone的因为Fixnum是“数值类”不需要clone(套用概念= =)。你确定p出来的值全都是0?
作者: DeathKing    时间: 2009-8-28 14:58
Fixnum是不能被clone的因为Fixnum是“数值类”不需要clone(套用概念= =)。你确定p出来的值全都是0?
IamI 发表于 2009-8-28 14:50


有时候是0,有时候不是0,这是雅楼在土的一个ARPG 脚本,主要脚本超过了6000行
作者: ONEWateR    时间: 2009-8-28 15:06
楼主说的那个arpg是xas系统吧~
作者: DeathKing    时间: 2009-8-28 15:12
楼主说的那个arpg是xas系统吧~
ONEWateR 发表于 2009-8-28 15:06



不错,难道有类似的错误报告么?
作者: ONEWateR    时间: 2009-8-28 15:17
很抱歉没有~
应该是其他地方的问题吧~
很抱歉爱莫能助
一般这样完整复杂的系统修改出现错误,别人一般都难以帮助~
作者: DeathKing    时间: 2009-8-28 16:19
请求关闭主题。

原因未找到,但是已修复。来源很灵异。。。。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1