Project1

标题: 【已经解决】求助,让地图有个窗口显示自己的体力和魔力 [打印本页]

作者: 匿名RM爱好者    时间: 2018-3-17 15:42
标题: 【已经解决】求助,让地图有个窗口显示自己的体力和魔力
本帖最后由 匿名RM爱好者 于 2018-3-17 19:35 编辑

用事件可以达到吗?
作者: 文雅夕露    时间: 2018-3-17 16:01
本帖最后由 文雅夕露 于 2018-3-17 22:30 编辑

这是我自己写的。
应该能用,想用就拿去用吧。
RUBY 代码复制
  1. #==============================================================================
  2. # ■ Window_Mapstatus
  3. #------------------------------------------------------------------------------
  4. #  地图上显示简单状态的窗口
  5. #==============================================================================
  6. class Window_Mapstatus < Window_Base
  7.   def initialize
  8.     width = 96 + 4 + 124 + standard_padding * 2 #头像宽度+4+HPMP宽度+2倍的间距
  9.     height = 96 + standard_padding * 2  #头像宽度+2倍的间距
  10.     super(0, Graphics.height - height, width, height)
  11.     @actor = $game_party.members #队员列表
  12.     @current = 0 #当前显示第一号角色的状态
  13.     @old_hp = @actor[@current].hp #记录当前该角色的hp
  14.     @old_mp = @actor[@current].mp #记录当前该角色的mp
  15.     self.opacity = 160 #透明度
  16.     refresh #刷新
  17.   end
  18.   #--------------------------------------------------------------------------
  19.   # ● 刷新
  20.   #--------------------------------------------------------------------------
  21.   def refresh
  22.      begin   #禁忌方法,解除Bug报错等问题。
  23.     contents.clear
  24.     actor = @actor[@current]
  25.     draw_actor_face(actor, 0, 0)
  26.     draw_actor_name(actor, 100, 0)
  27.     draw_actor_level(actor, 100, 24)
  28.     draw_actor_hp(actor, 100, 48)
  29.     draw_actor_mp(actor, 100, 72)
  30.      rescue  #禁忌方法,解除Bug报错等问题。
  31.    end
  32. end
  33.  
  34.   #--------------------------------------------------------------------------
  35.   # ● 更新
  36.   #--------------------------------------------------------------------------
  37.   def update
  38.     update_actor_status
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # ● 更新当前HPMP值
  42.   #--------------------------------------------------------------------------
  43.   def update_actor_status
  44.     if @old_hp != @actor[@current].hp || @old_mp != @actor[@current].mp
  45.       refresh
  46.       @old_hp = @actor[@current].hp #新的HP代入旧的HP
  47.       @old_mp = @actor[@current].mp #新的MP代入旧的MP
  48.     end
  49.   end
  50. end
  51. #==============================================================================
  52. # ■ Scene_Map
  53. #------------------------------------------------------------------------------
  54. #  地图画面
  55. #==============================================================================
  56. class Scene_Map < Scene_Base
  57.   #--------------------------------------------------------------------------
  58.   # ● 生成所有窗口
  59.   #--------------------------------------------------------------------------
  60.   alias map_create_all_windows create_all_windows
  61.   def create_all_windows
  62.       map_create_all_windows
  63.       @mapstatus_window = Window_Mapstatus.new
  64.       end
  65.   end





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