MOG – I Hud 1.0
MOG - I Hud 1.0 é um script criado pelo Moghunter para ser usado em um game ou projeto do RPG Maker XP que implementa um sistema de HUD que apresenta o HP e SP em ícones.
MOG – I Hud 1.0 é um script criado pelo Moghunter para ser usado em um game ou projeto do RPG Maker XP que implementa um sistema de HUD que apresenta o HP e SP em ícones.
Este sistema de HUD é no estilo de games como Alundra ou Soul Blazer, jogos no estilo action role-playing game.
O MOG – I Hud 1.0 é uma alternativa similar e mais moderna ao MOG MPW Icon v1.0, que publicamos aqui, mas não conta com a demo nem as figuras prontas para usar.
Screenshot
Utilização
Convém baixar o minigame que já possui todas as imagens exemplos e o script.
Note que as imagens devem ser deixadas na pasta Windowskins
.
Script
O script abaixo vai acima do “Main”, na sua parte de scripts do projeto:
#_______________________________________________________________________________ # MOG - I Hud 1.0 #_______________________________________________________________________________ # By Moghunter # http://www.atelier-rgss.com #_______________________________________________________________________________ # - Apresenta o HP e SP em icones. # # ARQUIVOS NECESSÁRIOS # # IHud_HP.png # IHud_Layout.png # Ihud_Number.png # IHud_SP.png # # Deixe as imagens na pasta Windowskins # # NOTA # A imagem do ícone sempre será dividido por 2, independente # do tamanho da imagem. #_______________________________________________________________________________ module MOG #Posição geral do HUD. IHUD_X = 230 IHUD_Y = 10 #Switch que desativa a HUD. DISABLE_IHUD_SWITCH_ID = 5 #Posição do Layout IHUD_LAYOUT_X = -15 IHUD_LAYOUT_Y = 0 #HP ------------------------------------ #Posição do ícone de HP. HP_ICON_X = 30 HP_ICON_Y = 0 #Posição do numero de HP. H_NUMBER_X = 0 H_NUMBER_Y = 0 #Quantidade maxima de icones de HP. ICON_HP_MAX = 10 #Espaço entre um icone e o outro. ICON_HP_SPACE = 14 #Apresentar o HP em numero. HP_NUMBER_ENABLE = true #SP ------------------------------------- #Posição do ícone de SP. SP_ICON_X = 50 SP_ICON_Y = 32 #Posição do numero de SP. S_NUMBER_X = 30 S_NUMBER_Y = 32 #Quantidade maxima de icones de SP. ICON_SP_MAX = 10 #Espaço entre um icone e o outro. ICON_SP_SPACE = 14 #Apresentar o SP em numero. SP_NUMBER_ENABLE = true end #============================================================================== # Ihud #============================================================================== class Ihud < Sprite include MOG #-------------------------------------------------------------------------- # * Initialize #-------------------------------------------------------------------------- def initialize(viewport) super(viewport) @actor = $game_party.actors[0] return if @actor == nil # Initialize ------------------------------------------------------------- @hp = @actor.hp @maxhp = @actor.maxhp @hp_maxicon = ICON_HP_MAX @hp_iconmax = ICON_HP_MAX @hp_iconmax = 1 if @hp_iconmax <= 0 @hp2 = @actor.hp / @hp_iconmax @sp = @actor.sp @maxsp = @actor.maxsp @sp_maxicon = ICON_SP_MAX @sp_iconmax = ICON_SP_MAX @sp_iconmax = 1 if @sp_iconmax <= 0 @sp2 = @actor.sp / @sp_iconmax # Layout ------------------------------------------------------------------- @layout_image = RPG::Cache.windowskin("IHud_Layout") @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height) @layout_sprite = Sprite.new @layout_sprite.bitmap = @layout_bitmap @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height) @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back) @layout_sprite.z = 5001 @layout_sprite.x = IHUD_LAYOUT_X + IHUD_X @layout_sprite.y = IHUD_LAYOUT_Y + IHUD_Y # HP --------------------------------------------------------------------- @hp_icon_image = RPG::Cache.windowskin("IHud_HP") @hp_icon_cw = @hp_icon_image.width / 2 @hp_icon_ch = @hp_icon_image.height b_width = @hp_icon_cw * @hp_iconmax @hp_bitmap = Bitmap.new(b_width,@hp_icon_ch) @hp_icon_sprite = Sprite.new @hp_icon_sprite.bitmap = @hp_bitmap @hp_icon_sprite.z = 5002 @hp_icon_sprite.x = HP_ICON_X + IHUD_X @hp_icon_sprite.y = HP_ICON_Y + IHUD_Y # HP Number --------------------------------------------------------------------- @hp_number_image = RPG::Cache.windowskin("Ihud_Number") @hp_number_bitmap = Bitmap.new(@hp_number_image.width,@hp_number_image.height) @im_cw = @hp_number_image.width / 10 @im_ch = @hp_number_image.height / 2 @hp_number_sprite = Sprite.new @hp_number_sprite.bitmap = @hp_number_bitmap @hp_number_sprite.z = 5003 @hp_number_sprite.x = H_NUMBER_X + IHUD_X @hp_number_sprite.y = H_NUMBER_Y + IHUD_Y # SP --------------------------------------------------------------------- @sp_icon_image = RPG::Cache.windowskin("IHud_SP") @sp_icon_cw = @sp_icon_image.width / 2 @sp_icon_ch = @sp_icon_image.height bs_width = @sp_icon_cw * @sp_iconmax @sp_bitmap = Bitmap.new(bs_width,@sp_icon_ch) @sp_icon_sprite = Sprite.new @sp_icon_sprite.bitmap = @sp_bitmap @sp_icon_sprite.z = 5002 @sp_icon_sprite.x = SP_ICON_X + IHUD_X @sp_icon_sprite.y = SP_ICON_Y + IHUD_Y # SP Number --------------------------------------------------------------------- @sp_number_image = RPG::Cache.windowskin("Ihud_Number") @sp_number_bitmap = Bitmap.new(@sp_number_image.width,@sp_number_image.height) @ims_cw = @sp_number_image.width / 10 @ims_ch = @sp_number_image.height / 2 @sp_number_sprite = Sprite.new @sp_number_sprite.bitmap = @sp_number_bitmap @sp_number_sprite.z = 5003 @sp_number_sprite.x = S_NUMBER_X + IHUD_X @sp_number_sprite.y = S_NUMBER_Y + IHUD_Y hp_refresh sp_refresh visible_update end #-------------------------------------------------------------------------- # * Dispose #-------------------------------------------------------------------------- def dispose return if @actor == nil #Layout Dispose @layout_bitmap.dispose @layout_bitmap = nil @layout_sprite.bitmap.dispose @layout_sprite.bitmap = nil @layout_sprite.dispose @layout_sprite = nil #HP Icon Dispose @hp_bitmap.dispose @hp_bitmap = nil @hp_icon_sprite.dispose @hp_icon_sprite = nil #Hp Number Dispose @hp_number_bitmap.dispose @hp_number_bitmap = nil @hp_number_sprite.bitmap.dispose @hp_number_sprite.bitmap = nil @hp_number_sprite.dispose @hp_number_sprite = nil #SP Icon Dispose @sp_bitmap.dispose @sp_bitmap = nil @sp_icon_sprite.dispose @sp_icon_sprite = nil #Sp Number Dispose @sp_number_sprite.bitmap.dispose @sp_number_sprite.bitmap = nil @sp_number_sprite.dispose @sp_number_sprite = nil @sp_number_bitmap.dispose @sp_number_bitmap = nil end #-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- def update return if @actor == nil if @hp != @actor.hp or @maxhp != @actor.maxhp hp_refresh end if @sp != @actor.sp or @maxsp != @actor.maxsp sp_refresh end visible_update end #-------------------------------------------------------------------------- # * Visible_on #-------------------------------------------------------------------------- def visible_update return if @actor == nil if $game_switches[MOG::DISABLE_IHUD_SWITCH_ID] == true @layout_sprite.visible = false @hp_icon_sprite.visible = false @hp_number_sprite.visible = false @sp_icon_sprite.visible = false @sp_number_sprite.visible = false else @hp_icon_sprite.visible = true @sp_icon_sprite.visible = true @layout_sprite.visible = true if HP_NUMBER_ENABLE == true @hp_number_sprite.visible = true else @hp_number_sprite.visible = false end if SP_NUMBER_ENABLE == true @sp_number_sprite.visible = true else @sp_number_sprite.visible = false end end end #-------------------------------------------------------------------------- # * HP Refresh #-------------------------------------------------------------------------- def hp_refresh return if @actor == nil @hp_icon_sprite.bitmap.clear @hp_number_sprite.bitmap.clear @hp = @actor.hp @maxhp = @actor.maxhp @hp_iconmax = ICON_HP_MAX @hp_iconmax = 1 if @hp_iconmax <= 0 @hp2 = @actor.hp / @hp_iconmax @hp3 = @actor.hp - (@hp2 * @hp_iconmax) #HP Icon ----------------------- for i in 0...@hp_iconmax @hp_icon_src_rect = Rect.new(0,0, @hp_icon_cw, @hp_icon_ch) @hp_bitmap.blt(i * ICON_HP_SPACE , 0, @hp_icon_image, @hp_icon_src_rect) end @hp2 = @hp2 - 1 if @hp3 == 0 and @actor.hp > 0 @hp3 = @hp_iconmax if @hp3 == 0 and @actor.hp > 0 for i in 0...@hp3 @hp_icon_src_rect = Rect.new(@hp_icon_cw,0, @hp_icon_cw, @hp_icon_ch) @hp_bitmap.blt(i * ICON_HP_SPACE , 0, @hp_icon_image, @hp_icon_src_rect) end #HP Number ------------------ @hp_number_text = @hp2.abs.to_s.split(//) for r in 0..@hp_number_text.size - 1 @hp_number_abs = @hp_number_text[r].to_i @hp_src_rect = Rect.new(@im_cw * @hp_number_abs, 0, @im_cw, @im_ch) @hp_number_bitmap.blt(20 * r, 0, @hp_number_image, @hp_src_rect) end end #-------------------------------------------------------------------------- # * SP Refresh #-------------------------------------------------------------------------- def sp_refresh return if @actor == nil @sp_icon_sprite.bitmap.clear @sp_number_sprite.bitmap.clear @sp = @actor.sp @maxsp = @actor.maxsp @sp_iconmax = ICON_SP_MAX @sp_iconmax = 1 if @sp_iconmax <= 0 @sp2 = @actor.sp / @sp_iconmax @sp3 = @actor.sp - (@sp2 * @sp_iconmax) #SP Icon ----------------------- for i in 0...@sp_iconmax @sp_icon_src_rect = Rect.new(0,0, @sp_icon_cw, @sp_icon_ch) @sp_bitmap.blt(i * ICON_SP_SPACE , 0, @sp_icon_image, @sp_icon_src_rect) end @sp2 = @sp2 - 1 if @sp3 == 0 and @actor.sp > 0 @sp3 = @sp_iconmax if @sp3 == 0 and @actor.sp > 0 for i in 0...@sp3 @sp_icon_src_rect = Rect.new(@sp_icon_cw,0, @sp_icon_cw, @sp_icon_ch) @sp_bitmap.blt(i * ICON_SP_SPACE , 0, @sp_icon_image, @sp_icon_src_rect) end #SP Number ------------------ @sp_number_text = @sp2.abs.to_s.split(//) for r in 0..@sp_number_text.size - 1 @sp_number_abs = @sp_number_text[r].to_i @sp_src_rect = Rect.new(@im_cw * @sp_number_abs, @ims_ch, @ims_cw, @ims_ch) @sp_number_bitmap.blt(15 * r, 0, @sp_number_image, @sp_src_rect) end end end #=============================================================================== # Scene_Map #=============================================================================== class Scene_Map alias ihud_main main #-------------------------------------------------------------------------- # Main #-------------------------------------------------------------------------- def main @ic_viewport = Viewport.new(0, 0, 640, 480) @ic_viewport.z = 9999 @i_hud = Ihud.new(@ic_viewport) ihud_main @i_hud.dispose @i_hud = nil @ic_viewport.dispose @ic_viewport = nil end #-------------------------------------------------------------------------- # Update #-------------------------------------------------------------------------- alias ihud_update update def update ihud_update @i_hud.update end end $mog_rgss_ihud = true
Mais programação XP
Download e ficha técnica
- Download (clique com o botão esquerdo do mouse ou toque no link)
- Desenvolvedor, publisher e/ou distribuidor: Moghunter
- SO: Windows 98/98SE/Me/2000/XP/Vista/7
- Tamanho: 872 KB (pacote de instalação e/ou espaço em disco)
- Licença: Grátis
- Categoria: Programação XP
- Tags: HUD, RPG Maker XP
- Adicionado por: LichKing
- Acessos: 63
Observação: se você gostou deste post ou ele lhe foi útil de alguma forma, por favor considere apoiar financeiramente a Gaming Room. Fico feliz só de ajudar, mas a contribuição do visitante é muito importante para que este site continua existindo e para que eu possa continuar provendo este tipo de conteúdo e melhorar cada vez mais. Acesse aqui e saiba como. Obrigado!
Você pode se interessar também por
Você pode acompanhar os comentários desse post através do feed RSS 2.0.
Deixe um comentário
Você pode criticar, elogiar, corrigir, complementar, reportar links quebrados (o que é muito importante) etc. Você pode até xingar a gente de palavrão se quiser, mas como não queremos ofender as crianças que nos visitam (e evitar choradeira dos frescos de plantão) não aprovaremos comentários com palavras chulas e/ou de baixo calão. Também não aprovaremos spam ou conteúdos ofensivos a outras partes. O seu link só será aprovado se for de algum site que esteja funcionando e não seja spam nem enganação. Dados pessoais não serão publicados. O conteúdo dos comentários é de inteira responsabilidade de seus autores.