じ☆ve冰风 发表于 2024-4-19 19:25:04

【ISA】敌人Hp显示 - Monster Hp Display

#==============================================================================# ■ 【ISA】敌人Hp显示 - Monster Hp Display#------------------------------------------------------------------------------# - 2011.2.25#   初始化 忧雪の伤# - 2011.2.26#   更新 忧雪の伤#______________________________________________________________________________# # 追加敌人总体Hp的显示。##==============================================================================#==============================================================================# ★ 设定部分 ★#==============================================================================module ISA   # 功能开关MHD = true# 文字显示MHD_FONT = true# 文字名称MHD_FONT_NAME = ["Arial"]# 文字大小MHD_FONT_SIZE = 15# 文字颜色MHD_FONT_COLOR = Color.new(255, 255, 255)# 文字粗体MHD_FONT_BOLD = true# 文字斜体MHD_FONT_ITALIC = false# 文字描边功能(BFS自动识别,不存在的场合返回无)MHD_FONT_BFS = true# 文字分割符MHD_FONT_BL = " / "# 文字X坐标修正MHD_FONT_X_PLUS = 5# 模糊功能(模糊算法不存在的场合引发错误)MHD_BLUR = false# 血条颜色MHD_COLOR = Color.new(225, 0, 0)# 背景颜色MHD_BACK_COLOR = Color.new(0, 0, 0)# 血条长度MHD_LONG = 120# 血条高度MHD_HEIGHT = 10# X坐标修正MHD_X_PLUS = 10# Y坐标修正MHD_Y_PLUS = 50# 透明度设定MHD_OPACITY = 200# 窗口透明度设定MHD_WINDOW_OPACITY = 0end#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★# 注册【ISA】$ISA = {} if $ISA == nil$ISA["MHD"] = true#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#==============================================================================# ★ 开关判定 ★#==============================================================================if ISA::MHD == true then#==============================================================================# ■ ISA_Window_Enemy_Hp#------------------------------------------------------------------------------#  显示战斗画面敌人总体Hp的窗口。#==============================================================================class ISA_Window_Enemy_Hp < Window_Base#--------------------------------------------------------------------------# ● 初始化对像#--------------------------------------------------------------------------def initialize    super(0, 0, 640, 480)    # 创建描绘区域    self.contents = Bitmap.new(640 - 32, 480 - 32)    # 读取透明度    self.opacity = ISA::MHD_WINDOW_OPACITY    # 坐标修正    self.x += ISA::MHD_X_PLUS    self.y += ISA::MHD_Y_PLUS    refreshend#--------------------------------------------------------------------------# ● 刷新#--------------------------------------------------------------------------def refresh    self.contents.clear    self.contents_opacity = ISA::MHD_OPACITY    # 背景部分    b = Rect.new(5, 10, ISA::MHD_LONG + 2, ISA::MHD_HEIGHT + 2)    self.contents.fill_rect(b, ISA::MHD_BACK_COLOR)    # 内容部分    h = Rect.new(6, 11, ISA::MHD_LONG * $ISA_enemy_hp / $ISA_enemy_maxhp, 10)    self.contents.fill_rect(h, ISA::MHD_COLOR)    # 模糊调用    self.contents.blur(1, b) if ISA::MHD_BLUR    # 文字部分    self.contents.font.color = ISA::MHD_FONT_COLOR    self.contents.font.name = ISA::MHD_FONT_NAME    self.contents.font.size = ISA::MHD_FONT_SIZE    self.contents.font.bold = ISA::MHD_FONT_BOLD    self.contents.font.italic = ISA::MHD_FONT_ITALIC    case ISA::MHD_FONT_BFS and ISA::BFS    when true      self.contents.BFS_draw_text(6 + ISA::MHD_FONT_X_PLUS, 0, 110, 32, $ISA_enemy_hp.to_s + ISA::MHD_FONT_BL + $ISA_enemy_maxhp.to_s, 1) if ISA::MHD_FONT    when false      self.contents.draw_text(6 + ISA::MHD_FONT_X_PLUS, 0, 110, 32, $ISA_enemy_hp.to_s + ISA::MHD_FONT_BL + $ISA_enemy_maxhp.to_s, 1) if ISA::MHD_FONT    endendend#==============================================================================# ■ Scene_Battle #------------------------------------------------------------------------------#  处理战斗画面的类。#==============================================================================class Scene_Battle#--------------------------------------------------------------------------# ● 主处理#--------------------------------------------------------------------------alias old_main_second maindef main    # 声明别名    # 准备队伍    @troop_id = $game_temp.battle_troop_id    $game_troop.setup(@troop_id)    # 初始化    $ISA_enemy_maxhp = 0    $ISA_enemy_hp = 0    # 读取信息    for a in 0...$game_troop.enemies.size      @enemy = $game_troop.enemies      $ISA_enemy_maxhp += @enemy.maxhp      $ISA_enemy_hp += @enemy.hp    end    # 生成窗口    @ISA_Enemy_Hp_window = ISA_Window_Enemy_Hp.new    @ISA_Enemy_Hp_window.z -= 101    # => p @ISA_Enemy_Hp_window.z    # 调用其他    old_main_second    # 释放窗口    @ISA_Enemy_Hp_window.disposeend#--------------------------------------------------------------------------# ● 刷新画面 (主回合步骤 6 : 刷新)#--------------------------------------------------------------------------alias old_update_phase4_step6_second update_phase4_step6def update_phase4_step6    # 声明别名    # 初始化    $ISA_enemy_maxhp = 0    $ISA_enemy_hp = 0    # 读取信息    for a in 0...$game_troop.enemies.size      @enemy = $game_troop.enemies      $ISA_enemy_maxhp += @enemy.maxhp      $ISA_enemy_hp += @enemy.hp    end    # 刷新    @ISA_Enemy_Hp_window.refresh    # 调用其他    old_update_phase4_step6_secondendendend复制代码
截图:
             本帖来自P1论坛作者忧雪の伤,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=168459若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
页: [1]
查看完整版本: 【ISA】敌人Hp显示 - Monster Hp Display