Project1

标题: 帮我看看这个问题出在哪 [打印本页]

作者: yang1zhi    时间: 2016-4-6 13:35
标题: 帮我看看这个问题出在哪
本帖最后由 yang1zhi 于 2016-4-6 13:37 编辑



RUBY 代码复制
  1. # 通常キャラのパターン更新処理(デフォルトの処理をコピペしただけ)
  2.       if @anime_count > 18 - @move_speed * 2
  3.         # 停止時アニメが OFF かつ 停止中の場合
  4.         if not @step_anime and @stop_count > 0
  5.           # パターンをオリジナルに戻す
  6.           @pattern = @original_pattern
  7.         # 停止時アニメが ON または 移動中の場合
  8.         else
  9.           # パターンを更新
  10.           @pattern = (@pattern + 1) % 4
  11.         end
  12.         # アニメカウントをクリア
  13.         @anime_count = 0
  14.       end
  15.     end



他提示说是*号没定义,所以我想是@move_speed的问题。所以在事件里加了@move_speed
作者: huajinyu123    时间: 2016-4-6 16:46
能否试试@move_speed是什么?
还有,我为何感觉是括号不加的问题?
作者: 众位坛友    时间: 2016-4-6 20:48
本帖最后由 众位坛友 于 2016-4-6 20:51 编辑

在Ruby中,运算符也被当作方法定义,也就是说:
class Integer
def +(x)
return self+x #这只是示范,请不要在意太多细节
end
end
因此,当算术函数前所跟对象(或其最终结果)不为某一种数据类型的实例对象或空时,就会出现没有定义"*"方法的提示。这个问题,是由数据为空造成的。
请检测在这个实例中,前面@move_speed是否被赋值,或张贴完整脚本

关于函数+不加括号,实际上是ruby普遍的语法现象,请参见技术区某个帖子




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