本帖最后由 流浪杰哥 于 2019-6-23 22:27 编辑
我是从MOG的BOSS血条取出的一段动态血条的描绘方法,我把它放在Window_MenuStatus里面使用,只不过只能生成一个血条,暂时还没有解决这个问题…………方便的话楼主可以告诉我怎么修改吗?顺便一提,啥下拉菜单是什么呢……
这是我暂时使用的方式,因为图方便我直接放到Window_Base里面去了。
脚本如下:
#encoding:utf-8 #============================================================================== # ■ Window_Base #------------------------------------------------------------------------------ # 游戏中所有窗口的父类 #============================================================================== class Window_Base < Window def dispose contents.dispose unless disposed? super dispose_meter#释放 end def update super update_hp_meter#更新 update_tone update_open if @opening update_close if @closing end #绘制 def draw_actor_hp_meter(actor,x, y) @meter_image = Cache.system("HP_Meter") @meter_cw = @meter_image.width / 3 @meter_ch = @meter_image.height @meter = Sprite.new @meter.bitmap = Bitmap.new(@meter_cw,@meter_ch) @meter.z = 101 @meter.x = x @meter.y = y @hp_flow = 0 @hp_flow_max = @meter_cw * 2 @np = actor.hp @nnp = actor.mhp end def dispose_meter return if @meter == nil @meter.bitmap.dispose @meter.dispose @meter = nil end def update_hp_meter return if @meter_image == nil @meter.bitmap.clear hp_width = @meter_cw * @np / @nnp hp_src_rect = Rect.new(@hp_flow, 0,hp_width, @meter_ch) @meter.bitmap.blt(0,0, @meter_image, hp_src_rect) @hp_flow += 1 @hp_flow = 0 if @hp_flow >= @hp_flow_max end end
#encoding:utf-8
#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
# 游戏中所有窗口的父类
#==============================================================================
class Window_Base < Window
def dispose
contents.dispose unless disposed?
super
dispose_meter#释放
end
def update
super
update_hp_meter#更新
update_tone
update_open if @opening
update_close if @closing
end
#绘制
def draw_actor_hp_meter(actor,x, y)
@meter_image = Cache.system("HP_Meter")
@meter_cw = @meter_image.width / 3
@meter_ch = @meter_image.height
@meter = Sprite.new
@meter.bitmap = Bitmap.new(@meter_cw,@meter_ch)
@meter.z = 101
@meter.x = x
@meter.y = y
@hp_flow = 0
@hp_flow_max = @meter_cw * 2
@np = actor.hp
@nnp = actor.mhp
end
def dispose_meter
return if @meter == nil
@meter.bitmap.dispose
@meter.dispose
@meter = nil
end
def update_hp_meter
return if @meter_image == nil
@meter.bitmap.clear
hp_width = @meter_cw * @np / @nnp
hp_src_rect = Rect.new(@hp_flow, 0,hp_width, @meter_ch)
@meter.bitmap.blt(0,0, @meter_image, hp_src_rect)
@hp_flow += 1
@hp_flow = 0 if @hp_flow >= @hp_flow_max
end
end
|