Project1

标题: 释放窗口时出错 已解决 [打印本页]

作者: 飞翔的小鸟3    时间: 2017-10-4 01:09
标题: 释放窗口时出错 已解决
本帖最后由 飞翔的小鸟3 于 2017-10-4 19:49 编辑


之前问过一个帖子,类似问题,原因是我自己释放一次,然后在Scene_Base自动释放一次,导致错误
这次是指向Window_Selectable,他或者他的父类是否有一样的自动释放的代码?我找不到啊。
然后,有一个奇怪的问题,我是按同一个键打开关闭血条,按一两次不会出错,要按多次才会出错。这很奇怪。

第一个问题解决了,图片pass掉


血量窗口:
RUBY 代码复制
  1. class Blood_rect < Window_Selectable
  2.   def initialize
  3.     super(436,-12,124,49)
  4.   end
  5.   def open_rect
  6.     $blood_rect.opacity = 0
  7.     a = Color.new(255,0,0)
  8.     $blood_rect.contents.clear
  9.     $blood_rect.contents.fill_rect(0,0,$game_variables[14],25,a)
  10.   end
  11.   def close_rect
  12.     $blood_rect.contents.clear
  13.     $blood_rect.contents.dispose
  14.     $blood_rect.dispose
  15.   end
  16. end



这个可以不用管他,用来调出血条的快捷调用窗口
RUBY 代码复制
  1. class Window_shortcut < Window_Command
  2.   def initialize
  3.     super(0,250)
  4.     make_command_list
  5.     command_window
  6.     activate
  7.     item_max
  8.     process_cursor_move
  9.   end
  10.  
  11.   def make_command_list
  12.     add_command("开启/关闭残血量", :blood_volume)
  13.     add_command("开启/关闭残弹量", :Bomb_residue)
  14.     add_command("更换武器", :change_weapon)
  15.   end
  16.   def command_window
  17.     set_handler(:blood_volume, method(:run_blood_volume))
  18.     set_handler(:Bomb_residue, method(:run_Bomb_residue))
  19.     set_handler(:change_weapon, method(:run_change_weapon))
  20.   end
  21.   def run_blood_volume
  22.     activate
  23.     $var2 ||= 0
  24.     $var2 = ($var2 == 0 ? 1 : 0 )
  25.     if $var2 == 1
  26.       $game_switches[38] = true
  27.     else $var2 == 0
  28.       $game_switches[39] = true
  29.     end
  30.   end
  31.   def run_Bomb_residue
  32.   end
  33.   def run_change_weapon
  34.   end
  35.   def item_max
  36.     return 3
  37.   end
  38.   def process_cursor_move
  39.     return unless cursor_movable?
  40.     last_index = @index
  41.     cursor_down (Kboard.keyboard(0x32))  if Kboard.keyboard(0x32)
  42.     cursor_up   (Kboard.keyboard(0x31))    if Kboard.keyboard(0x31)
  43.     Sound.play_cursor if @index != last_index
  44.   end
  45. end



作者: 张咚咚    时间: 2017-10-4 08:46
本帖最后由 张咚咚 于 2017-10-4 13:11 编辑

这是什么写法,类里直接用self不久行了,而且不知为什么感觉这种写法很有bug的感觉。。
算了,对于会出错的地方你直接加上这一句判断就可以简单暴力的解决了...






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