HUD bar vertical [RGSS3] Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

Aldeia RPG
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

HUD bar vertical [RGSS3]

2 participantes

Ir para baixo

HUD bar vertical [RGSS3] Empty HUD bar vertical [RGSS3]

Mensagem por driko Qui Abr 21, 2016 2:44 pm

E aí galera, tudo certo? Para os manjadores de rgss3 queria pedir uma ajudinha, é o seguinte. Queria alterar a forma na qual se movimenta a barra de uma HUD, queria fazer com que as barras de HP e MP contassem na vertical, descendo de cima para baixo. Desde já agradeço!  Very Happy

Código:
#==============================================================================
#------------------------------------------------------------------------------
# por Masked
#==============================================================================
($imported ||= {})[:mbs_hud] = true
module MBS
  module HUD
#==============================================================================
# Configurações
#==============================================================================
    # Imagens (na pasta Graphics)
    @@_img = {
      BASE: 'Pictures/Base',
      HP:  'Pictures/hp',
      MP:  'Pictures/mp',
      EXP:  'Pictures/exp',
    }
   
    # Posições (X, Y)
    @@_pos = {
      BASE: [238,538],
      CHAR: [900,45],
      HP:  [5,5],
      MP:  [279,5],
      EXP:  [243,575],
    }
   
    # Dimensões (largura, altura)
    @@_dim = {
      CHAR: [25,60],
    }
#==============================================================================
# Fim das configurações
#==============================================================================

    extend self

    # Criação dos métodos legais :3
    [:img, :pos, :dim].each do |sym|
      class_variable_get("@@_#{sym}".to_sym).each do |k, v|
        define_method("#{sym}_#{k.to_s.downcase}".to_sym) { v }
      end
    end
   
  end
end
#==============================================================================
# ** Sprite_HUD
#==============================================================================
class Sprite_HUD < Sprite
  include MBS
 
  @@base = Bitmap.new("Graphics/#{HUD.img_base}")
  @@hp  = Bitmap.new("Graphics/#{HUD.img_hp}")
  @@mp  = Bitmap.new("Graphics/#{HUD.img_mp}")
  @@exp  = Bitmap.new("Graphics/#{HUD.img_exp}")
   
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #--------------------------------------------------------------------------
  def initialize(viewport=nil)
    super(viewport)
    self.x, self.y = *HUD.pos_base
    self.bitmap = @@base.dup
    self.visible = true
    self.z = 0
    refresh
  end
  #--------------------------------------------------------------------------
  # * Atualização do objeto
  #--------------------------------------------------------------------------
  def update
    super
    refresh
  end
  #--------------------------------------------------------------------------
  # * Atualização dos valores
  #--------------------------------------------------------------------------
  def update_values
    @old_hp, @old_mhp = actor.hp, actor.mhp
    @old_mp, @old_mmp = actor.mp, actor.mmp
    @old_xp = actor.exp
    @old_id = actor.id
  end
 
  #--------------------------------------------------------------------------
  # * Redesenho do sprite
  #--------------------------------------------------------------------------
  def refresh
    redraw_hp if hp_changed?
    redraw_mp if mp_changed?
    redraw_xp if xp_changed?
    redraw_char if actor_changed?
    update_values if any_changed?
  end
  #--------------------------------------------------------------------------
  # * Redesenho do HP
  #--------------------------------------------------------------------------
  def redraw_hp
    if HUD.method_defined?(:dim_hp)
      rect = Rect.new(*HUD.pos_hp, *HUD.dim_hp)
    else
      rect = Rect.new(*HUD.pos_hp, @@hp.width, @@hp.height)
    end
    self.bitmap.blt(rect.x,rect.y,@@base,rect)
    self.bitmap.blt(*HUD.pos_hp,@@hp,hp_rect)
  end
  #--------------------------------------------------------------------------
  # * Redesenho do MP
  #--------------------------------------------------------------------------
  def redraw_mp
    if HUD.method_defined?(:dim_mp)
      rect = Rect.new(*HUD.pos_mp, *HUD.dim_mp)
    else
      rect = Rect.new(*HUD.pos_mp, @@mp.width, @@mp.height )
    end
    self.bitmap.blt(rect.x,rect.y,@@base,rect)
    self.bitmap.blt(*HUD.pos_mp,@@mp,mp_rect)
  end
  #--------------------------------------------------------------------------
  # * Redesenho do EXP
  #--------------------------------------------------------------------------
  def redraw_xp
    if HUD.method_defined?(:dim_xp)
      rect = Rect.new(*HUD.pos_exp, *HUD.dim_exp)
    else
      rect = Rect.new(*HUD.pos_exp, @@exp.width, @@exp.height)
    end
    self.bitmap.blt(rect.x,rect.y,@@base,rect)
        self.bitmap.blt(*HUD.pos_exp,@@exp,xp_rect)
  end
  #--------------------------------------------------------------------------
  # * Redesenho do HP
  #--------------------------------------------------------------------------
  def redraw_char
    rect = Rect.new(*HUD.pos_char, *HUD.dim_char)
   
    self.bitmap.blt(*HUD.pos_char,char_bitmap,char_rect)
  end
 
  #--------------------------------------------------------------------------
  # * Aquisição do retângulo do HP
  #--------------------------------------------------------------------------
  def hp_rect
    unless HUD.method_defined?(:dim_hp)
      Rect.new(0,0,@@hp.width*actor.hp / actor.mhp,@@hp.height)
    else
      Rect.new(0,0,*HUD.dim_hp)
    end
  end
  #--------------------------------------------------------------------------
  # * Aquisição do retângulo do MP
  #--------------------------------------------------------------------------
  def mp_rect
      unless HUD.method_defined?(:dim_mp)
      Rect.new(0,0,@@mp.width * actor.mp / actor.mmp,@@mp.height)
    else
      Rect.new(0,0,*HUD.dim_mp)
    end
  end
  #--------------------------------------------------------------------------
  # * Aquisição do retângulo do XP
  #--------------------------------------------------------------------------
  def xp_rect
    unless HUD.method_defined?(:dim_exp)
      xp = actor.exp - actor.current_level_exp
      mxp = actor.next_level_exp - actor.current_level_exp
      Rect.new(0,0,@@exp.width * xp / mxp,@@exp.height)
    else
      Rect.new(0,0,*HUD.dim_exp)
    end
  end
  #--------------------------------------------------------------------------
  # * Aquisição do retângulo do char
  #--------------------------------------------------------------------------
  def char_rect
    unless HUD.method_defined?(:dim_char)
      Rect.new(0,0,@@hp.width * actor.hp / actor.mhp,@@hp.height)
    else
      Rect.new(0,0,*HUD.dim_char)
    end
  end
 
  #--------------------------------------------------------------------------
  # * Aquisição do bitmap do char do personagem
  #--------------------------------------------------------------------------
  def char_bitmap
    bitmap = Bitmap.new(*HUD.dim_char)
    char = Cache.character(actor.character_name)
    sign = actor.character_name[/^[\!\$]./]
    if sign && sign.include?('$')
      cw = char.width / 3
      ch = char.height / 4
    else
      cw = char.width / 12
      ch = char.height / 8
    end
    n = actor.character_index
    src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
    bitmap.blt(bitmap.width/2-cw/2,0,char,src_rect)
    bitmap
  end
 
  #--------------------------------------------------------------------------
  # * Aquisição do personagem
  #--------------------------------------------------------------------------
  def actor
    $game_party.battle_members.first
  end
 
  #--------------------------------------------------------------------------
  # * Verificação de alteração no hp
  #--------------------------------------------------------------------------
  def hp_changed?
    !(@old_hp == actor.hp && @old_mhp == actor.mhp)
  end
  #--------------------------------------------------------------------------
  # * Verificação de alteração no hp
  #--------------------------------------------------------------------------
  def mp_changed?
    !(@old_hp == actor.mp && @old_mhp == actor.mmp)
  end
  #--------------------------------------------------------------------------
  # * Verificação de alteração no xp
  #--------------------------------------------------------------------------
  def xp_changed?
    @old_exp != actor.exp
  end
  #--------------------------------------------------------------------------
  # * Verificação de alteração no hp
  #--------------------------------------------------------------------------
  def actor_changed?
    @old_id != actor.id
  end
  #--------------------------------------------------------------------------
  # * Verificação de alteração de qualquer coisa
  #--------------------------------------------------------------------------
  def any_changed?
    hp_changed? || mp_changed? || xp_changed? || actor_changed?
  end
 
end

#==============================================================================
# ** Scene_Map
#==============================================================================
class Scene_Map < Scene_Base
  #--------------------------------------------------------------------------
  # Alias
  #--------------------------------------------------------------------------
  alias mbsstart2 start
  alias mbsupdate update
  alias mbstermit terminate
  #--------------------------------------------------------------------------
  # * Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    mbsstart2
    @mbshud = Sprite_HUD.new
  end
  #--------------------------------------------------------------------------
  # * Atualização do processo
  #--------------------------------------------------------------------------
  def update
    mbsupdate
    @mbshud.update
  end
  #--------------------------------------------------------------------------
  # * Finalização do processo
  #--------------------------------------------------------------------------
  def terminate
    mbstermit
    @mbshud.dispose
  end
end
driko
driko
Semi-Experiente
Semi-Experiente

Mensagens : 125
Créditos : 7

Ficha do personagem
Nível: 1
Experiência:
HUD bar vertical [RGSS3] Left_bar_bleue0/0HUD bar vertical [RGSS3] Empty_bar_bleue  (0/0)
Vida:
HUD bar vertical [RGSS3] Left_bar_bleue30/30HUD bar vertical [RGSS3] Empty_bar_bleue  (30/30)

Ir para o topo Ir para baixo

HUD bar vertical [RGSS3] Empty Re: HUD bar vertical [RGSS3]

Mensagem por Naruto RPG Maker Qui Abr 21, 2016 4:55 pm

Olha, não sei quase nada de RGSS, mas acho que pode ser assim que você quer. Teste e me diga se funcionou. (Ia testar, mas estou sem o VX Ace instalado.)
Código:
#==============================================================================
#------------------------------------------------------------------------------
# por Masked
#==============================================================================
($imported ||= {})[:mbs_hud] = true
module MBS
  module HUD
#==============================================================================
# Configurações
#==============================================================================
    # Imagens (na pasta Graphics)
    @@_img = {
      BASE: 'Pictures/Base',
      HP:   'Pictures/hp',
      MP:   'Pictures/mp',
      EXP:  'Pictures/exp',
    }
    
    # Posições (X, Y)
    @@_pos = {
      BASE: [238,538],
      CHAR: [900,45],
      HP:   [5,5],
      MP:   [279,5],
      EXP:  [243,575],
    }
    
    # Dimensões (largura, altura)
    @@_dim = {
      CHAR: [25,60],
    }
#==============================================================================
# Fim das configurações
#==============================================================================

    extend self

    # Criação dos métodos legais :3
    [:img, :pos, :dim].each do |sym|
      class_variable_get("@@_#{sym}".to_sym).each do |k, v|
        define_method("#{sym}_#{k.to_s.downcase}".to_sym) { v }
      end
    end
    
  end
end
#==============================================================================
# ** Sprite_HUD
#==============================================================================
class Sprite_HUD < Sprite
  include MBS
  
  @@base = Bitmap.new("Graphics/#{HUD.img_base}")
  @@hp   = Bitmap.new("Graphics/#{HUD.img_hp}")
  @@mp   = Bitmap.new("Graphics/#{HUD.img_mp}")
  @@exp  = Bitmap.new("Graphics/#{HUD.img_exp}")
    
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #--------------------------------------------------------------------------
  def initialize(viewport=nil)
    super(viewport)
    self.x, self.y = *HUD.pos_base
    self.bitmap = @@base.dup
    self.visible = true
    self.z = 0
    refresh
  end
  #--------------------------------------------------------------------------
  # * Atualização do objeto
  #--------------------------------------------------------------------------
  def update
    super
    refresh
  end
  #--------------------------------------------------------------------------
  # * Atualização dos valores
  #--------------------------------------------------------------------------
  def update_values
    @old_hp, @old_mhp = actor.hp, actor.mhp
    @old_mp, @old_mmp = actor.mp, actor.mmp
    @old_xp = actor.exp
    @old_id = actor.id
  end
  
  #--------------------------------------------------------------------------
  # * Redesenho do sprite
  #--------------------------------------------------------------------------
  def refresh
    redraw_hp if hp_changed?
    redraw_mp if mp_changed?
    redraw_xp if xp_changed?
    redraw_char if actor_changed?
    update_values if any_changed?
  end
  #--------------------------------------------------------------------------
  # * Redesenho do HP
  #--------------------------------------------------------------------------
  def redraw_hp
    if HUD.method_defined?(:dim_hp)
      rect = Rect.new(*HUD.pos_hp, *HUD.dim_hp)
    else
      rect = Rect.new(*HUD.pos_hp, @@hp.width, @@hp.height)
    end
    self.bitmap.blt(rect.x,rect.y,@@base,rect)
    self.bitmap.blt(*HUD.pos_hp,@@hp,hp_rect)
  end
  #--------------------------------------------------------------------------
  # * Redesenho do MP
  #--------------------------------------------------------------------------
  def redraw_mp
    if HUD.method_defined?(:dim_mp)
      rect = Rect.new(*HUD.pos_mp, *HUD.dim_mp)
    else
      rect = Rect.new(*HUD.pos_mp, @@mp.width, @@mp.height )
    end
    self.bitmap.blt(rect.x,rect.y,@@base,rect)
    self.bitmap.blt(*HUD.pos_mp,@@mp,mp_rect)
  end
  #--------------------------------------------------------------------------
  # * Redesenho do EXP
  #--------------------------------------------------------------------------
  def redraw_xp
    if HUD.method_defined?(:dim_xp)
      rect = Rect.new(*HUD.pos_exp, *HUD.dim_exp)
    else
      rect = Rect.new(*HUD.pos_exp, @@exp.width, @@exp.height)
    end
    self.bitmap.blt(rect.x,rect.y,@@base,rect)
        self.bitmap.blt(*HUD.pos_exp,@@exp,xp_rect)
  end
  #--------------------------------------------------------------------------
  # * Redesenho do HP
  #--------------------------------------------------------------------------
  def redraw_char
    rect = Rect.new(*HUD.pos_char, *HUD.dim_char)
    
    self.bitmap.blt(*HUD.pos_char,char_bitmap,char_rect)
  end
  
  #--------------------------------------------------------------------------
  # * Aquisição do retângulo do HP
  #--------------------------------------------------------------------------
  def hp_rect
    unless HUD.method_defined?(:dim_hp)
      Rect.new(0,0,@@hp.width,@@hp.height * actor.hp / actor.mhp)
    else
      Rect.new(0,0,*HUD.dim_hp)
    end
  end
  #--------------------------------------------------------------------------
  # * Aquisição do retângulo do MP
  #--------------------------------------------------------------------------
  def mp_rect
      unless HUD.method_defined?(:dim_mp)
      Rect.new(0,0,@@mp.width,@@mp.height * actor.mp / actor.mmp)
    else
      Rect.new(0,0,*HUD.dim_mp)
    end
  end
  #--------------------------------------------------------------------------
  # * Aquisição do retângulo do XP
  #--------------------------------------------------------------------------
  def xp_rect
    unless HUD.method_defined?(:dim_exp)
      xp = actor.exp - actor.current_level_exp
      mxp = actor.next_level_exp - actor.current_level_exp
      Rect.new(0,0,@@exp.width,@@exp.height * xp / mxp)
    else
      Rect.new(0,0,*HUD.dim_exp)
    end
  end
  #--------------------------------------------------------------------------
  # * Aquisição do retângulo do char
  #--------------------------------------------------------------------------
  def char_rect
    unless HUD.method_defined?(:dim_char)
      Rect.new(0,0,@@hp.width * actor.hp / actor.mhp,@@hp.height)
    else
      Rect.new(0,0,*HUD.dim_char)
    end
  end
  
  #--------------------------------------------------------------------------
  # * Aquisição do bitmap do char do personagem
  #--------------------------------------------------------------------------
  def char_bitmap
    bitmap = Bitmap.new(*HUD.dim_char)
    char = Cache.character(actor.character_name)
    sign = actor.character_name[/^[\!\$]./]
    if sign && sign.include?('$')
      cw = char.width / 3
      ch = char.height / 4
    else
      cw = char.width / 12
      ch = char.height / 8
    end
    n = actor.character_index
    src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
    bitmap.blt(bitmap.width/2-cw/2,0,char,src_rect)
    bitmap
  end
  
  #--------------------------------------------------------------------------
  # * Aquisição do personagem
  #--------------------------------------------------------------------------
  def actor
    $game_party.battle_members.first
  end
  
  #--------------------------------------------------------------------------
  # * Verificação de alteração no hp
  #--------------------------------------------------------------------------
  def hp_changed?
    !(@old_hp == actor.hp && @old_mhp == actor.mhp)
  end
  #--------------------------------------------------------------------------
  # * Verificação de alteração no hp
  #--------------------------------------------------------------------------
  def mp_changed?
    !(@old_hp == actor.mp && @old_mhp == actor.mmp)
  end
  #--------------------------------------------------------------------------
  # * Verificação de alteração no xp
  #--------------------------------------------------------------------------
  def xp_changed?
    @old_exp != actor.exp
  end
  #--------------------------------------------------------------------------
  # * Verificação de alteração no hp
  #--------------------------------------------------------------------------
  def actor_changed?
    @old_id != actor.id
  end
  #--------------------------------------------------------------------------
  # * Verificação de alteração de qualquer coisa
  #--------------------------------------------------------------------------
  def any_changed?
    hp_changed? || mp_changed? || xp_changed? || actor_changed?
  end
  
end

#==============================================================================
# ** Scene_Map
#==============================================================================
class Scene_Map < Scene_Base
  #--------------------------------------------------------------------------
  # Alias
  #--------------------------------------------------------------------------
  alias mbsstart2 start
  alias mbsupdate update
  alias mbstermit terminate
  #--------------------------------------------------------------------------
  # * Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    mbsstart2
    @mbshud = Sprite_HUD.new
  end
  #--------------------------------------------------------------------------
  # * Atualização do processo
  #--------------------------------------------------------------------------
  def update
    mbsupdate
    @mbshud.update
  end
  #--------------------------------------------------------------------------
  # * Finalização do processo
  #--------------------------------------------------------------------------
  def terminate
    mbstermit
    @mbshud.dispose
  end
end
Lembrando que não tenho lá muita noção de RGSS. Mas espero que funcione.

_________________
HUD bar vertical [RGSS3] AIymW
Naruto RPG Maker
Naruto RPG Maker
Semi-Experiente
Semi-Experiente

Mensagens : 125
Créditos : 23

Ir para o topo Ir para baixo

HUD bar vertical [RGSS3] Empty Re: HUD bar vertical [RGSS3]

Mensagem por driko Qui Abr 21, 2016 5:07 pm

Valeu mesmo mano, de certa forma até funcionou, porem a barra se movimenta de baixo para cima, e não de cima para baixo. Mas, obrigado pela força!
driko
driko
Semi-Experiente
Semi-Experiente

Mensagens : 125
Créditos : 7

Ficha do personagem
Nível: 1
Experiência:
HUD bar vertical [RGSS3] Left_bar_bleue0/0HUD bar vertical [RGSS3] Empty_bar_bleue  (0/0)
Vida:
HUD bar vertical [RGSS3] Left_bar_bleue30/30HUD bar vertical [RGSS3] Empty_bar_bleue  (30/30)

Ir para o topo Ir para baixo

HUD bar vertical [RGSS3] Empty Re: HUD bar vertical [RGSS3]

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos