Início­Portal­FAQ­Buscar­Membros­Grupos­Registrar-se­Login
Novo Tópico   Responder ao tópicoCompartilhe | 
 

 Criando uma HUD simples de HP e MP na tela

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
Faalco
 
 


Mensagens: 42
Data de inscrição: 03/06/2010
Idade: 20

MensagemAssunto: Criando uma HUD simples de HP e MP na tela    Qua Jul 07, 2010 8:13 pm

Introdução

Oi gente... Venho a trazer um tutorial que criei na RMB de como criar uma HUD simples de HP e MP na tela, breve trarei mais scripts criados por mim :)

Bom... Aqui começa a aula:

No RMVX, os nomes da HP é simplesmente hp e MP é sp

No caso, nós criaremos um sprite, então comece o script assim:
Código:
class HUD < Sprite
 
  #Inicia
  def initialize(view)
    super(view)


E então, você deve criar as cores que você quer usar exemplo:
Código:
    @ch1 = Color.new(50,0,0)
    @ch2 = Color.new(222,26,50)
    @cm1 = Color.new(50,60,60)
    @cm2 = Color.new(0,240,50)
    @back = Color.new(0,0,0)
    @back2 = Color.new(240,240,80)


Lembre-se tudo que começa com @alguma coisa, significa que isto é um atalho e que ele simplesmente não faz nada, você deve colocar um = e definir o que vai acontecer. Outra coisa que é necessário lembra é: nos '()' tem 3 números, por exemplo, (50,0,0) isso significa que esta cor terá 50 de vermelho, 0 de verde e 0 de azul.

Depois é necessário criar o bitmap, que futuramente fará a barra, use isto:
Código:
    #Cria o Bitmap
    self.bitmap = Bitmap.new(200,200)
    self.bitmap.font.name = "UmePlus Gothic"
    self.bitmap.font.size = 20
    self.z = 300
    update
  end


E então crie um 'atualiza' e um 'apaga o conteúdo', parece pouco importante, mas é fundamental para a execução
Código:
  #Atualiza
  def update
    super
 
    #Apaga o conteudo
    self.bitmap.clear


Para fazer a barra você deve usar fill.rect's que eu não sei usar, então peguei um que sempre uso de base:
Código:
    hp = $game_actors[1].hp
    maxhp = $game_actors[1].maxhp
    wb = 116 * hp / maxhp
    self.bitmap.fill_rect(10, 10, 120, 10, @back)
    self.bitmap.fill_rect(11, 11, 118, 8, @back2)
    self.bitmap.fill_rect(12, 12, 116, 6, @back)
    self.bitmap.gradient_fill_rect(12, 12, wb, 6, @ch1, @ch2)
    self.bitmap.draw_text(60, 0, 200, 24, "HP")


Observe que nas primeiras linhas, nós definimos sempre, o hp e o hp máximo!
Onde tem: $game_actor[1] significa que os dados serão retirados do primeiro persongem do grupo se você mudar para $game_actor[2] ele irá retirar os dados do segundo, e assim vai.

Agora a barra de MP (no RMVX sp) faça a mesma coisa, mas só mude tudo de hp pra mp:
Código:
    #Cria a barra de MP
    mp = $game_actors[1].mp
    maxmp = $game_actors[1].maxmp
    wb = 116 * mp / maxmp
    self.bitmap.fill_rect(10, 30, 120, 10, @back)
    self.bitmap.fill_rect(11, 31, 118, 8, @back2)
    self.bitmap.fill_rect(12, 32, 116, 6, @back)
    self.bitmap.gradient_fill_rect(12, 32, wb, 6, @cm1, @cm2)
    self.bitmap.draw_text(60, 20, 200, 24, "MP")
 
  end


Depois você deve criar o dispose da HUD, crie assim:
Código:
  def dispose
    self.bitmap.dispose
    super
  end
end


E por fim, instale a HUD no mapa:
Código:
#Instala o HUD
class Spriteset_Map
  alias :or_initialize :initialize
  def initialize
    @hud = HUD.new(@viewport2)
    or_initialize
  end
  alias :or_update :update
  def update
    @hud.update
    or_update
  end
  alias :or_dispose :dispose
  def dispose
    @hud.dispose
    or_dispose
  end
end

Voltar ao Topo Ir em baixo
Ver perfil do usuário
 

Criando uma HUD simples de HP e MP na tela

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

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
Cakers RPG Maker - Plums 3.0 :: Aulas de RGSS-
Novo Tópico   Responder ao tópico