Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 Criando Hud simples em 7/11/2012, 02:18

Warrior

avatar
Ajudante
Ajudante
Com esse tuto aprendera a fazer uma hud bem simples
1.Pegue esse código:
Código:
X = 0
Y = 0
Largura = 300
Altura = 300

class Hud < Window_Base
  def initialize
      super(0,0,300,300)
      self.contents = Bitmap.new(width - 32, height - 32)
      @ator = 0
      refresh
    end

  def refresh
    self.contents.clear
    actor = $game_party.actors[ator]
#Conteúdo:       

#Fim 
   
    if $scene.is_a?(Scene_Menu)
      self.contents.clear
    end
    if $scene.is_a?(Scene_Battle)
      self.contents.clear
      self.visible = false
    end
  end
end
#Adiciona a janela a o mapa.
class Scene_Map
  alias hud_main main
  def main
    @Hud = Hud.new
    hud_main
    @Hud.dispose
  end
  alias hud_update update
  def update
    hud_update
    @Hud.update
    @Hud.refresh
  end
end
class Game_Actor < Game_Battler
  def now_exp
    return @exp - @exp_list[@level]
  end
  def next_exp
    return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
  end
end

2.Voce está vendo que tem uma linha do script escrito o seguinte:
Código:
$game_party.actors[ator]

Troque actor pelo id do herói que está na party cujo os status serão
igual ao dele.
Por exemplo se eu colocar:
Código:
$game_party.actors[0]

Irá monstrar os status do ator 1 que está na party.
Eu recomendo colocar 0!

3.Voce está vendo uma linha cujo está escrito:
Código:
#Conteúdo:
e outra cujo está escrito:
Código:
#Fim

Embaixo de
Código:
#Conteúdo
e em cima de
Código:
#Fim
nós vamos adicionar os comandos. Os comandos que voce pode colocar são os seguintes:

Desenhar Gráfico:
Código:
draw_actor_graphic(actor, x, y)

Desenhar Nome:
Código:
draw_actor_name(actor, x, y)

Desenhar Classe:
Código:
draw_actor_class(actor, x, y)

Desenhar Nível:
Código:
draw_actor_level(actor, x, y)

Desenhar Status:
Código:
draw_actor_state(actor, x, y, width = 120)

Desenhar EXP:
Código:
draw_actor_exp(actor, x, y)

Desenhar HP:
Código:
draw_actor_hp(actor, x, y, width = 144)

Desenhar MP:
Código:
draw_actor_sp(actor, x, y, width = 144)

4.No início do script você viu que está escríto:
Código:
X = 0
Y = 0
Largura = 300
Altura = 300

Isso eu fiz para ficar mais fácil de configurar a janela.
Código:
X =
posição na horizontal(Quanto maior o número mais a janela
ficará para a direita)
Código:
Código:
Y =
posição na vertical(Quanto maior o número mais a janela
ficará para baixo)
Código:
Largura =
largura da janela.
Código:
Altura =
altura da janela.

5.Voce pode colocar os comandos entre o conteudo e fim
traduzindo os comandos:

Código:
draw_actor_hp(actor, 0, 0, width = 144)
No lugar de 0 coloque a posição da janela na horizontal.
No lugar do segundo 0 coloque a posição da janela na vertical.
No lugar de width = 144, troque o 144 pela largura do texto do HP.(eu recomendo deixar 144 mesmo!)

6.Um exemplo de uma hud que eu fiz:
Código:
X = 0
Y = 0
Largura = 200
Altura = 120
class Hud < Window_Base
  def initialize
      super(X,Y,Largura,Altura)
      self.contents = Bitmap.new(width - 32, height - 32)
      @ator = 0
      refresh
    end

  def refresh
    self.contents.clear
    actor = $game_party.actors[0]
#Conteúdo:       
draw_actor_graphic(actor, 130, 48)
draw_actor_hp(actor, 0, 20, width = 144)
draw_actor_sp(actor, 0, 40, width = 144)
draw_actor_exp(actor, 0, 60)
#Fim 
    if $scene.is_a?(Scene_Menu)
      self.contents.clear
    end
    if $scene.is_a?(Scene_Battle)
      self.contents.clear
      self.visible = false
    end
  end
end
#Adiciona a janela a o mapa.
class Scene_Map
  alias hud_main main
  def main
    @Hud = Hud.new
    hud_main
    @Hud.dispose
  end
  alias hud_update update
  def update
    hud_update
    @Hud.update
    @Hud.refresh
  end
end

7.Criando hp com imagem
Coloque a imagem do hp na pasta pictures, o qual será o chamada de“HPBAR”
No lugar de "draw_actor_hp(actor, x, y, width = 144)" coloque:

Código:
hpbar = RPG::Cache.picture("HPBAR")
hpbarwidth = hpbar.width * actor.hp / actor.maxhp
hpbarheight = hpbar.height
hpbar_rect = Rect.new(0,0,hpbarwidth,hpbarheight)
self.contents.draw_text(0,0,30,30, "HP:", 0)
self.contents.blt(30,10,hpbar,hpbar_rect)

se quiser mudar para hp para sp, é so substituir nessa linha:
Código:
hpbarwidth = hpbar.width * actor.hp / actor.maxhp
para
Código:
hpbarwidth = hpbar.width * actor.sp / actor.maxsp

Créditos:
Valentine por fazer o tuto e a min por postar



Ver perfil do usuário

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum