Project1

标题: 请教如何在出现对话框时隐藏状态的窗口 [打印本页]

作者: 十三点九进制    时间: 2020-11-24 06:29
标题: 请教如何在出现对话框时隐藏状态的窗口
如题,战斗界面下方显示同伴状态的窗口,一旦弹出对话框,这个窗口就暂时隐藏,该如何实现?谢谢
作者: 灯笼菜刀王    时间: 2020-11-24 09:57
本帖最后由 灯笼菜刀王 于 2020-11-24 11:08 编辑

class Window_BattleStatus < Window_Base
  alias ox20201124 update
  def update
     ox20201124
     self.visible = !$game_system.map_interpreter.running?
  end
end

把这段塞到 main 前 window_battleStatus 后面随意位置试试
作者: RPGzh500223    时间: 2020-11-24 16:33
class Scene_Battle
  alias ori_update update
  def update
    ori_update
    @status_window.visible = ($game_temp.message_window_showing==false)
  end
end


楼上的开关应该是$game_system.battle_interpreter.running?吧
没怎么用过战斗事件,按楼上的脚本,为什么其他战斗事件(除显示文章)不能触发visible效果呢……




作者: 灯笼菜刀王    时间: 2020-11-24 21:05
本帖最后由 灯笼菜刀王 于 2020-11-24 21:07 编辑
RPGzh500223 发表于 2020-11-24 16:33
class Scene_Battle
  alias ori_update update
  def update


=.= 对,是battler 疏忽了

不用message showing是因为可能会出现一会出现一会消失的情况,从视觉上看很糟糕,笑~ 这个是经验之谈


就像这样=.=

至于为什么其他的事件不触发, 那是因为它们不会"暂停", 一瞬间就处理结束自然就看不到隐藏效果咯

像"显示文章/等待"这种会"暂停"的事件, 会"卡着"事件处理器不至于一瞬间处理完毕从而让 running? 的判定一直保持有效啦
作者: 十三点九进制    时间: 2020-11-24 22:20
RPGzh500223 发表于 2020-11-24 16:33
class Scene_Battle
  alias ori_update update
  def update

非常感谢,
不过虽然界面隐藏,但是战斗图还在,请问这个应该怎么一并隐藏掉?
作者: RPGzh500223    时间: 2020-11-25 12:11
#不推荐opacity变化
class Spriteset_Battle
  alias ori_update update
  def update
    ori_update
    if $game_temp.message_window_showing
      for i in @actor_sprites
        i.visible = false
      end
    else
      for i in @actor_sprites
        i.visible = true
      end
    end
  end
end




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