Project1

标题: 装备扩张导致更换装备时候很卡,求助! [打印本页]

作者: crow2006    时间: 2015-3-25 13:56
标题: 装备扩张导致更换装备时候很卡,求助!
本帖最后由 crow2006 于 2015-3-25 13:59 编辑

RUBY 代码复制
  1. class Scene_Equip < Scene_Base
  2. def update_status_window
  3.     if @equip_window.active
  4.       @status_window.set_new_parameters(nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil)
  5.     elsif @item_window.active
  6.       temp_actor = Marshal.load(Marshal.dump(@actor)) #@actor.clone #
  7.       temp_actor.change_equip(@equip_window.index, @item_window.item, true)
  8.       new_atk = temp_actor.atk
  9.       new_def = temp_actor.def
  10.       new_spi = temp_actor.spi
  11.       new_agi = temp_actor.agi
  12.       new_hit = temp_actor.hit
  13.       new_eva = temp_actor.eva
  14.       new_cri = temp_actor.cri
  15.       new_maxhp = temp_actor.maxhp
  16.       new_maxmp = temp_actor.maxmp
  17.       new_sx9  = temp_actor.sx9
  18.       new_sx10 = temp_actor.sx10
  19.       new_sx11 = temp_actor.sx11
  20.       new_sx12 = temp_actor.sx12
  21.       new_sx13 = temp_actor.sx13
  22.       new_sx14 = temp_actor.sx14
  23.       new_sx15 = temp_actor.sx15
  24.       new_sx16 = temp_actor.sx16
  25.       new_sx17 = temp_actor.sx17
  26.       new_sx18 = temp_actor.sx18
  27.       new_sx19 = temp_actor.sx19
  28.       new_sx20 = temp_actor.sx20
  29.       new_sx21 = temp_actor.sx21
  30.       new_sx22 = temp_actor.sx22
  31.       new_sx23 = temp_actor.sx23
  32.       new_sx24 = temp_actor.sx24
  33.       new_sx25 = temp_actor.sx25
  34.       new_sx26 = temp_actor.sx26
  35.       new_sx27 = temp_actor.sx27
  36.       new_sx28 = temp_actor.sx28
  37.       new_sx29 = temp_actor.sx29
  38.       new_sx30 = temp_actor.sx30
  39.       @status_window.set_new_parameters(new_atk, new_def, new_spi, new_agi, new_maxhp, new_maxmp, new_hit, new_eva, new_cri, new_sx9,new_sx10, new_sx11, new_sx12, new_sx13, new_sx14, new_sx15, new_sx16, new_sx17, new_sx18, new_sx19, new_sx20, new_sx21, new_sx22, new_sx23, new_sx24, new_sx25, new_sx26, new_sx27, new_sx28, new_sx29, new_sx30)
  40.     end
  41.     @status_window.update
  42.   end
  43. end


卡的原因就在这句:temp_actor = Marshal.load(Marshal.dump(@actor))
如果改成          temp_actor = @actor.clone
虽然不再卡,但是会产生穿上的装备仍然留在包裹中不消失的BUG。
求助。

作者: taroxd    时间: 2015-3-26 17:27
仅在数据发生变化时读取数据并刷新。




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