Project1

标题: [結帖]stack level too deep [打印本页]

作者: david_ng223    时间: 2014-9-11 12:05
提示: 作者被禁止或删除 内容自动屏蔽
作者: taroxd    时间: 2014-9-11 12:41
ruby有函数可以追踪一个全局变量,似乎是叫做 trace_var 来着,但我不建议这么做

我没看你具体的脚本。就你的问题而言,你可以用一个变量(实例变量或全局变量)保存 $abcdefg 的值,然后每帧判断一次这个保存的值是否和全局变量的值相等。

参考 Spriteset_Map 里面,在地图 ID 改变的时候会刷新所有 Character 的做法。
作者: 喵呜喵5    时间: 2014-9-11 13:24
你可以修改默认的变量类的赋值部分语句,当1号变量的值发生改变时执行这句代码。
作者: david_ng223    时间: 2014-9-11 15:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: taroxd    时间: 2014-9-11 16:06
请确认一下,你在改变200号变量的值时,调用了 $game_player.refresh

因为这个方法并不是每一帧都会执行的
作者: moy    时间: 2014-9-11 18:45
RUBY 代码复制
  1. class Game_Variables
  2.   #--------------------------------------------------------------------------
  3.   # ● 设置变量
  4.   #--------------------------------------------------------------------------
  5.   def []=(variable_id, value)
  6.     @data[variable_id] = value
  7.     on_change(variable_id)
  8.   end
  9.   #--------------------------------------------------------------------------
  10.   # ● 设置变量时的处理
  11.   #--------------------------------------------------------------------------
  12.   def on_change(variable_id)
  13.     $game_map.need_refresh = true
  14.     $game_player.refresh if variable_id == 200
  15.   end
  16. end



作者: david_ng223    时间: 2014-9-11 22:17
提示: 作者被禁止或删除 内容自动屏蔽
作者: 子弹君    时间: 2014-9-11 23:27
D君不上q了吗……
作者: 余烬之中    时间: 2014-9-14 16:12
  1. # 插在Main以上就行了
  2. class Game_Variables
  3.   alias :set_var_20140914 :[]=
  4.   def []=(variable_id, value)
  5.     $game_player.refresh if variable_id == 200 # 你的游戏变量
  6.     set_var_20140914 variable_id, value
  7.   end
  8. end
复制代码

作者: david_ng223    时间: 2014-9-14 16:38
提示: 作者被禁止或删除 内容自动屏蔽




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