赞 | 62 |
VIP | 492 |
好人卡 | 47 |
积分 | 42 |
经验 | 71557 |
最后登录 | 2024-5-25 |
在线时间 | 4890 小时 |
Lv3.寻梦者 (版主) /) /)<
- 梦石
- 0
- 星屑
- 4212
- 在线时间
- 4890 小时
- 注册时间
- 2009-2-16
- 帖子
- 8434
|
插入Main前 打开17号开关 HP条显示。 下面可以改开关的编号@bars.visible = $game_switches[17]- #-----------------------------------------------------------------
- class Scene_Map
- #-----------------------------------------------------------------
- alias sk_bar_main main
- def main
- @bars = Window_Sk_Bars.new
- sk_bar_main
- @bars.dispose if @bars != nil
- end
- #-----------------------------------------------------------------
- alias sk_bar_update update
- def update
- @bars.update
- sk_bar_update
- @bars.visible = $game_switches[17] #开关打开HP条显示
- end
- #-----------------------------------------------------------------
- end
- #-----------------------------------------------------------------
- class Window_Base < Window
- #-----------------------------------------------------------------
- def sk_initialize(font=0,size=22)
- font = "Tahoma" if font == 0
- self.contents = Bitmap.new(self.width-32,self.height-32)
- self.contents.font.name = font
- self.contents.font.size = size
- end
- #-----------------------------------------------------------------
- def draw_text_outline(x,y,w,h,str,c=normal_color,a=0)
- self.contents.font.color = Color.new(0,0,0,255)
- self.contents.draw_text(x-1,y,w,h,str,a)
- self.contents.draw_text(x+1,y,w,h,str,a)
- self.contents.draw_text(x,y+1,w,h,str,a)
- self.contents.draw_text(x,y-1,w,h,str,a)
- self.contents.font.color = c
- self.contents.draw_text(x,y,w,h,str,a)
- end
- #-----------------------------------------------------------------
- end
- #-----------------------------------------------------------------
- class Window_Sk_Bars < Window_Base
- #-----------------------------------------------------------------
- def initialize
- super(444,-8,206,96)
- sk_initialize("Arial")
- self.opacity = 0
- end
- #-----------------------------------------------------------------
- def update
- self.contents.clear
- actor = $game_party.actors[0]
- return if actor.nil?
- draw_text_outline(0,-4,64,26,"HP")
- draw_actor_hp(actor,30,0)
- end
- #-----------------------------------------------------------------
- def draw_actor_hp(actor,x,y)
- width = 128
- y += 4
- white = Color.new(255,255,255,255)
- black = Color.new(0,0,0,255)
- w = width * actor.hp / actor.maxhp
- # White border
- self.contents.fill_rect(x+1, y-1, width-2, 1, white)
- self.contents.fill_rect(x, y, width, 1, white)
- self.contents.fill_rect(x-1, y+1, width+2, 9, white)
- self.contents.fill_rect(x, y+10, width, 1, white)
- self.contents.fill_rect(x+1, y+11, width-2, 1, white)
- # Black back
- self.contents.fill_rect(x+2, y, width-4, 1, black)
- self.contents.fill_rect(x+1, y+1, width-2, 1, black)
- self.contents.fill_rect(x, y+2, width, 7, black)
- self.contents.fill_rect(x+1, y+9, width-2, 1, black)
- self.contents.fill_rect(x+2, y+10, width-4, 1, black)
- # Generating the color
- val = 255 * ((actor.hp*100)/actor.maxhp)
- green = 255 - val/100
- color = Color.new(224,green,0,255)
- w_color = Color.new(255,green+32,96,255)
- if green > 64 then green -= 32
- elsif green > 128 then green -= 64 end
- b_color = Color.new(172,green,0,255)
- # Making the bar
- self.contents.fill_rect(x+2, y, w-4, 1, w_color)
- self.contents.fill_rect(x+1, y+1, w-2, 1, w_color)
- self.contents.fill_rect(x, y+2, w, 7, color)
- self.contents.fill_rect(x+1, y+9, w-2, 1, color)
- self.contents.fill_rect(x+2, y+10, w-4, 1, b_color)
- end
- #-----------------------------------------------------------------
- end
- #-----------------------------------------------------------------
复制代码 |
|