Project1
标题:
怪物血量条宽度的修改
[打印本页]
作者:
plqws
时间:
2009-9-27 20:11
标题:
怪物血量条宽度的修改
本帖最后由 plqws 于 2009-9-28 12:48 编辑
就是这个
HP
条,血量的
长条
的
宽度
怎么改?
#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
# 游戏中全部窗口的超级类。
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# ● 描绘 HP
# enemy : 角色
# x : 描绘目标 X 坐标
# y : 描绘目标 Y 坐标
# width : 宽
#--------------------------------------------------------------------------
def draw_enemy_hp(enemy, x, y, width = 65)
draw_actor_hp_gauge(enemy, x, y, width)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 30, WLH, Vocab::hp_a)
self.contents.font.color = hp_color(enemy)
xr = x + width
self.contents.draw_text(xr - 40, y, 40, WLH, enemy.hp, 2)
end
end
#==============================================================================
# ■ Sprite_Battler
#------------------------------------------------------------------------------
# 战斗显示用活动块。Game_Battler 类的实例监视、
# 活动块的状态的监视、活动块状态自动变化。
#==============================================================================
class Sprite_Battler < Sprite_Base
#--------------------------------------------------------------------------
# ● 常量
#--------------------------------------------------------------------------
WHITEN = 1 # 白色闪烁 (开始行动)
BLINK = 2 # 闪烁 (伤害)
APPEAR = 3 # 出现 (出现、复活)
DISAPPEAR = 4 # 消失 (逃走)
COLLAPSE = 5 # 崩溃 (不能战斗)
#--------------------------------------------------------------------------
# ● 定义实例变量
#--------------------------------------------------------------------------
attr_accessor :battler
#--------------------------------------------------------------------------
# ● 初始化对象
# viewport : 视区
# battler : 战斗者 (Game_Battler)
#--------------------------------------------------------------------------
def initialize(viewport, battler = nil)
super(viewport)
@battler = battler
@battler_visible = false
@effect_type = 0 # 效果种类
@effect_duration = 0 # 效果剩余时间
if @battler.is_a?(Game_Enemy)
width = 65 + 32
height = 24 + 32
x = @battler.screen_x - width/2
y = @battler.screen_y - height/2
@enemy_hp_window = Window_Base.new(x, y, width, height)
@enemy_hp_window.opacity = 0
@enemy_hp_window.contents = Bitmap.new(width - 32, height - 32)
@enemy_hp_window.draw_enemy_hp(@battler, 0, 0, 65)
@old_hp = -1
end
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
def dispose
if self.bitmap != nil
self.bitmap.dispose
@enemy_hp_window.dispose
end
super
end
#--------------------------------------------------------------------------
# ● 更新画面
#--------------------------------------------------------------------------
def update
super
if @battler == nil
self.bitmap = nil
else
@use_sprite = @battler.use_sprite?
if @use_sprite
self.x = @battler.screen_x
self.y = @battler.screen_y
self.z = @battler.screen_z
update_battler_bitmap
end
setup_new_effect
update_effect
if @enemy_hp_window != nil and @old_hp != @battler.hp
@enemy_hp_window.contents.clear
@enemy_hp_window.draw_enemy_hp(@battler, 0, 0, 65)
@old_hp = @battler.hp
end
end
end
end
复制代码
作者:
123955763
时间:
2009-9-27 21:02
提示:
作者被禁止或删除 内容自动屏蔽
作者:
njx937
时间:
2009-9-27 23:26
其实 width 在这里可以算长度
如果是指垂直边的话,
Window_Base 绘制角色体力值槽
这个 def
def draw_actor_hp_gauge(actor, x, y, width = 120,ht = 6)
gw = width * actor.hp / actor.maxhp
gc1 = hp_gauge_color1
gc2 = hp_gauge_color2
self.contents.fill_rect(x, y + WLH - 8, width, ht, gauge_back_color)
self.contents.gradient_fill_rect(x, y + WLH - 8, gw, ht, gc1, gc2)
end
复制代码
还有这句
draw_actor_hp_gauge(enemy, x, y, width, 你喜欢的高度)
这样基本行了
。。如果不是垂直边的话。。算我多事。。
未测试
如有冲突。。再找我。。
作者:
plqws
时间:
2009-9-28 12:27
是不是里面的
def draw_enemy_hp(enemy, x, y, width = 65)
@enemy_hp_window.draw_enemy_hp(@battler, 0, 0, 65)
@enemy_hp_window.draw_enemy_hp(@battler, 0, 0, 65)
都要改???
作者:
njx937
时间:
2009-9-28 16:30
如果是 所有的怪都一个“宽度”的话 就改上面 def的就行了
如果想有不同怪不同宽度的话。。
def draw_enemy_hp(enemy, x, y, width = 65,ht)
就要这样了
之后使用时 @enemy_hp_window.draw_enemy_hp(@battler, 0, 0, 65,宽度)
同理 长度也可以 随意更改。。
但是不同怪不同长度 宽度的话,就会有数据库扩充的问题,可以用备注栏和全局常量解决,个人推荐备注
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1