Project1
标题:
【ISA】敌人Hp显示 - Monster Hp Display
[打印本页]
作者:
忧雪の伤
时间:
2011-2-25 21:22
标题:
【ISA】敌人Hp显示 - Monster Hp Display
本帖最后由 忧雪の伤 于 2011-2-27 11:30 编辑
#==============================================================================
# ■ 【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 = 0
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
# 注册【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
refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
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
end
end
end
#==============================================================================
# ■ Scene_Battle
#------------------------------------------------------------------------------
# 处理战斗画面的类。
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ● 主处理
#--------------------------------------------------------------------------
alias old_main_second main
def 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[a]
$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.dispose
end
#--------------------------------------------------------------------------
# ● 刷新画面 (主回合步骤 6 : 刷新)
#--------------------------------------------------------------------------
alias old_update_phase4_step6_second update_phase4_step6
def update_phase4_step6
# 声明别名
# 初始化
$ISA_enemy_maxhp = 0
$ISA_enemy_hp = 0
# 读取信息
for a in 0...$game_troop.enemies.size
@enemy = $game_troop.enemies[a]
$ISA_enemy_maxhp += @enemy.maxhp
$ISA_enemy_hp += @enemy.hp
end
# 刷新
@ISA_Enemy_Hp_window.refresh
# 调用其他
old_update_phase4_step6_second
end
end
end
复制代码
截图:
ada三大.png
(329.65 KB, 下载次数: 21)
下载附件
保存到相册
2011-2-26 11:28 上传
作者:
isanamida
时间:
2011-2-26 12:45
如果放在敌人下方会不会好一点……
建议而已
作者:
DeathKing
时间:
2011-2-26 12:52
if ISA::MHD == true then
这是什么情况?也就是启动游戏后没有这个功能就永远别想用了?
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1