#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
1.63 MB, 下载次数: 130
KB.Driver 发表于 2019-6-18 21:50
因为你所有血条的精灵都叫@meter,后面生成的就覆盖了前面的。
如果追求方便,你可以新建@meters作为数组 ...
draw_actor_hp_meter(actor,rect.x+100, rect.y*index)
soulsaga 发表于 2019-6-18 23:37
draw_actor_hp_meter(actor,rect.x+100, rect.y*index)[/pre]
soulsaga 发表于 2019-6-21 17:52
这玩意原版只能显示一人么..
soulsaga 发表于 2019-6-21 20:19
不行..这个脚本是给一人用的..好难搞..
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,np,nnp=[],[],[] if @meter.nil? for i in 0...$game_party.members.size @meter.push(Sprite.new) @meter[i].bitmap = Bitmap.new(@meter_cw,@meter_ch) @meter.z.push(101) @meter.x.push(x) @meter.y.push(y*i) @hp_flow = 0 @hp_flow_max = @meter_cw * 2 @np.push($game_party.members[i].hp) @nnp.push($game_party.members[i].mhp) end def update_hp_meter return if @meter_image == nil @hp_width,@hp_src_rect=[],[] if @hp_width.nil? for i in 0...$game_party.members.size @meter[i].bitmap.clear @hp_width.push(@meter_cw * @np[i] / @nnp[i]) @hp_src_rect[i] = Rect.new(@hp_flow[i], 0,@hp_width[i], @meter_ch) @meter.bitmap[i].blt(0,0, @meter_image, @hp_src_rect[i]) end @hp_flow += 1 @hp_flow = 0 if @hp_flow >= @hp_flow_max end end
soulsaga 发表于 2019-6-21 22:39
def draw_actor_hp_meter(actor,x, y)
@meter_image = Cache.system("HP_Meter")
@meter_cw = ...
流浪杰哥 发表于 2019-6-22 08:24
似乎这一行报错了
soulsaga 发表于 2019-6-21 22:39
def draw_actor_hp_meter(actor,x, y)
@meter_image = Cache.system("HP_Meter")
@meter_cw = ...
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |