Project1

标题: 问一个 有关地图 备注 显示的问题 [打印本页]

作者: 电车之熊    时间: 2015-11-15 23:16
标题: 问一个 有关地图 备注 显示的问题
本帖最后由 电车之熊 于 2015-11-15 23:17 编辑

我找了一个在场景中显示Hp、Mp条的脚本

RUBY 代码复制
  1. class Scene_Map < Scene_Base
  2. #----------------------------------------------------------------------------
  3. # * 重命名方法
  4. #----------------------------------------------------------------------------
  5.   alias sm_sta start
  6. #----------------------------------------------------------------------------
  7. # * 开始处理
  8. #----------------------------------------------------------------------------
  9.   def start
  10.     sm_sta
  11.  
  12.     @owt = Window_MapStatus.new
  13.   end
  14. end
  15. #-----------------------------------------------------------------------------
  16. #-----------------------------------------------------------------------------
  17. class Window_MapStatus < Window_Base
  18.  
  19.   def initialize
  20.     super(0, 0, 273,144)
  21.     self.opacity = 0
  22.     refresh
  23.   end
  24.   #----------------------------------------------------------------------------
  25.   # * 刷新画面
  26.   #----------------------------------------------------------------------------
  27.   def update
  28.     super
  29.     refresh if $refresh
  30.     $refresh = false
  31.   end
  32.   #----------------------------------------------------------------------------
  33.   # * 更新内容
  34.   #----------------------------------------------------------------------------
  35.   def refresh
  36.     self.contents.clear
  37.     draw_actor_hp($game_party.members[0], 60, 35, self.contents.width - 101)
  38.     draw_actor_mp($game_party.members[0], 60, 95, self.contents.width - 101)
  39.   end
  40. end
  41. #######################################################
  42. class Game_Actor < Game_Battler
  43. #----------------------------------------------------------------------------
  44. # * 重命名方法
  45. #----------------------------------------------------------------------------
  46.   alias ms_refresh refresh
  47. #--------------------------------------------------------------------------
  48. # * 刷新
  49. #---------------------------------------------------------------------
  50.   def refresh
  51.     ms_refresh
  52.     $refresh = true
  53.   end
  54.  
  55. end


但是我想在大地图中显示这条,在进入城镇地图中不显示Hp、Mp条,我希望在地图中加备注。
我照猫画虎将第12行该为
RUBY 代码复制
  1. @owt = Window_MapStatus.new if map.note.include?("<EEE>")



想表达的意思是当地图标注<EEE>显示Hp、Mp条,结果



我知道意思是没有定义map 。这种备注的方法是我按物品备注照猫画虎的,大家帮我看看怎么改。谢谢了
作者: 喵呜喵5    时间: 2015-11-16 10:51
手动定义一个,要获取备注时直接 $game_map.note 即可
  1. class Game_Map
  2.   def note; @map.note; end
  3. end
  4. # $game_map.note
复制代码
另外,你的思路本身就是错误的,Scene_Map不会随着地图的切换发生改变
最简单的思路:在窗口的update中根据地图的备注修改窗口的 visible 还更有效一些
作者: 电车之熊    时间: 2015-11-22 10:02
谢谢喵大了,之前没有看懂
我现在是
  1.   # * 刷新画面
  2.   #----------------------------------------------------------------------------
  3.   def update
  4.     super
  5.     refresh if $refresh
  6.     $refresh = false
  7.     @owt.visible = true  if $game_map.note.include?("<EEE>")
  8.   end
复制代码


显示的是visible方法不能改,看来是我@owt.visible的写法不对吧。
呵呵
作者: 喵呜喵5    时间: 2015-11-22 11:45
电车之熊 发表于 2015-11-22 10:02
谢谢喵大了,之前没有看懂
我现在是

你的代码有什么地方会让visible值为false吗




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