Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
[Resolvido]Ajuda com HUD
3 participantes
Aldeia RPG :: RPG Maker :: Rpg Maker XP :: Dúvidas e pedidos
Página 1 de 1
[Resolvido]Ajuda com HUD
Então, esse é meu primeiro contato com o NP, e estou tendo dificuldade em entender como funciona a customização da HUD.
Tenho mudado o que consigo aos poucos.
Eu até tentei mas...
Tenho mudado o que consigo aos poucos.
- Spoiler:
Eu até tentei mas...
- Spoiler:
Última edição por driko em Ter Mar 17, 2015 12:05 pm, editado 1 vez(es)
driko- Semi-Experiente
- Mensagens : 125
Créditos : 7
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Re: [Resolvido]Ajuda com HUD
Gostei da hud, espero que consigam colocar no netplay :) se fosse em unity ja teria feito o script pra você.
_________________
using C# and import Python developer || Expert in Unity Engine IDE. || 2D pixel games.
Re: [Resolvido]Ajuda com HUD
Cara primeiramente você vai ter que separar essa HUD... em base_hud que será sua hud base a primeira imagem... em seguida você vai ter que dividir a segunda imagem em 3
pode ser assim o exemplo
@fundo = RPG::Cache.picture("fundo") # primeira figura a que ficará como base para outras
@hpbar = RPG::Cache.picture("hpbar") # uma imagem apenas com a imagem do hp
@mpbar = RPG::Cache.picture("mpbar") # segue o exemplo do hp...
@xpbar = RPG::Cache.picture("xpbar") # segue o exemplo do hp
lá na linha 64 vc vai encontra algo assim... e so usar como logica esse meu ai...
# HUD posição x , y lagura / altura
self.bitmap.blt(0, 0, @fundo, Rect.new(-100, -388, 640, 480))
# HP posição x , y
self.bitmap.blt(197, 410, @hpbar, Rect.new(0, 0, @hpbar.width * @actor.hp / @actor.maxhp, @hpbar.height))
# MP
self.bitmap.blt(197, 428, @mpbar, Rect.new(0, 0, @mpbar.width * @actor.sp / @actor.maxsp, @hpbar.height))
# XP posição x , y
self.bitmap.blt(197, 446, @xpbar, Rect.new(0, 0, @xpbar.width * @actor.now_exp / @actor.next_exp, @hpbar.height)) if $game_party.actors[0].level < Config::MAX_LEVELS
pode ser assim o exemplo
@fundo = RPG::Cache.picture("fundo") # primeira figura a que ficará como base para outras
@hpbar = RPG::Cache.picture("hpbar") # uma imagem apenas com a imagem do hp
@mpbar = RPG::Cache.picture("mpbar") # segue o exemplo do hp...
@xpbar = RPG::Cache.picture("xpbar") # segue o exemplo do hp
lá na linha 64 vc vai encontra algo assim... e so usar como logica esse meu ai...
# HUD posição x , y lagura / altura
self.bitmap.blt(0, 0, @fundo, Rect.new(-100, -388, 640, 480))
# HP posição x , y
self.bitmap.blt(197, 410, @hpbar, Rect.new(0, 0, @hpbar.width * @actor.hp / @actor.maxhp, @hpbar.height))
# MP
self.bitmap.blt(197, 428, @mpbar, Rect.new(0, 0, @mpbar.width * @actor.sp / @actor.maxsp, @hpbar.height))
# XP posição x , y
self.bitmap.blt(197, 446, @xpbar, Rect.new(0, 0, @xpbar.width * @actor.now_exp / @actor.next_exp, @hpbar.height)) if $game_party.actors[0].level < Config::MAX_LEVELS
snaker15- Semi-Experiente
- Mensagens : 128
Créditos : 24
Re: [Resolvido]Ajuda com HUD
Primeiramente, obrigado pela atenção.
Estarei testando aqui da forma que mostrou.
Estarei testando aqui da forma que mostrou.
driko- Semi-Experiente
- Mensagens : 125
Créditos : 7
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Re: [Resolvido]Ajuda com HUD
Imagens separadas:
- HUD Base
-HP
-MP
-EXP
[SPR] Hud
Não esqueça de modificar a posição da hotkey caso interfira.
Não está o melhor código mas o trabalho de ajustar as posições está feito.
Imagem :
Espero ter ajudado!.
- HUD Base
-HP
-MP
-EXP
[SPR] Hud
- Código:
#==============================================================================
# ** Hud
#------------------------------------------------------------------------------
# By Valentine
# Edit By GallighanMaker 17/03/2015
#==============================================================================
class Hud < RPG::Sprite
#--------------------------------------------------------------------------
# * Inicialização dos Objetos
#--------------------------------------------------------------------------
def initialize
super()
self.bitmap = Bitmap.new(640,480)
self.x = 1
self.y = 1
self.z = 999
self.bitmap.font.size = 15
@base = RPG::Cache.picture("HUD Base")
@bars = RPG::Cache.picture("HudBars")
@gold = RPG::Cache.picture("Gold")
@actor = $game_party.actors[0]
#edit
@fundo = RPG::Cache.picture("HUD Base") # primeira figura a que ficará como base para outras
@hpbar = RPG::Cache.picture("hp") # uma imagem apenas com a imagem do hp
@mpbar = RPG::Cache.picture("mp") # segue o exemplo do hp...
@xpbar = RPG::Cache.picture("exp") # segue o exemplo do hp
refresh
end
#--------------------------------------------------------------------------
# * Verificação das Variáveis
#--------------------------------------------------------------------------
def something_changed?
return true if @old_exp != @actor.now_exp
return true if @old_hp != @actor.hp
return true if @old_sp != @actor.sp
return true if @old_level != @actor.level
return true if @old_gold != $game_party.item_number(Config::GOLD_ID)
return false
end
#--------------------------------------------------------------------------
# * Atualização do Frame
#--------------------------------------------------------------------------
def update
super
refresh if something_changed?
# Mudar opacidade
if $game_player.x >= self.x/32 and $game_player.x <= self.bitmap.width/32 and $game_player.y >= self.y/32 and $game_player.y <= self.bitmap.height/32 and self.opacity != 150
self.opacity = 150
elsif $game_player.x < self.x/32 or $game_player.x > self.bitmap.width/32 or $game_player.y < self.y/32 or $game_player.y > self.bitmap.height/32 and self.opacity == 150
self.opacity = 255
end
end
#--------------------------------------------------------------------------
# * Atualização
#--------------------------------------------------------------------------
def refresh
@old_exp = @actor.now_exp
@old_hp = @actor.hp
@old_sp = @actor.sp
@old_level = @actor.level
@old_gold = $game_party.item_number(Config::GOLD_ID)
self.bitmap.clear
# HUD posição x , y lagura / altura
self.bitmap.blt(10, 10, @fundo, Rect.new(0, 0, 640, 480))
# HP posição x , y
self.bitmap.blt(35, 13, @hpbar, Rect.new(0, 0, @hpbar.width * @actor.hp / @actor.maxhp, @hpbar.height))
# MP
self.bitmap.blt(193, 13, @mpbar, Rect.new(0, 0, @mpbar.width * @actor.sp / @actor.maxsp, @hpbar.height))
# Exp
self.bitmap.blt(68, 38, @xpbar, Rect.new(0, 0, @xpbar.width * @actor.now_exp / @actor.next_exp, 100)) if $game_party.actors[0].level < Config::MAX_LEVELS
# Base HP
#self.bitmap.blt(0, 0, @base, Rect.new(0, 18, 400, 100))
# Base SP
#self.bitmap.blt(99, 0, @base, Rect.new(0, 36, 400, 100))
# Base Exp
#self.bitmap.blt(0, 22, @base, Rect.new(0, 0, 400, 100))
# HP
#self.bitmap.blt(0, 0, @bars, Rect.new(0, 18, 95 * @actor.hp / @actor.maxhp, 100))
# SP
#self.bitmap.blt(99, 0, @bars, Rect.new(0, 36, 95 * @actor.sp / @actor.maxsp, 100))
# Exp
#self.bitmap.blt(0, 22, @bars, Rect.new(0, 0, @bars.width * @actor.now_exp / @actor.next_exp, 100)) if $game_party.actors[0].level < Config::MAX_LEVELS
# Dinheiro
self.bitmap.blt(230, 45, @gold, Rect.new(0, 0, @gold.width, @gold.height))
# Textos pretos
self.bitmap.font.color = Color.new(0,0,0)
#self.bitmap.draw_text(6, -6, 32, 32, $data_system.words.hp)
self.bitmap.draw_text(105 - self.bitmap.text_size("#{@actor.hp}/#{@actor.maxhp}").width, 5, self.bitmap.width, 32, "#{@actor.hp}/#{@actor.maxhp}")
#self.bitmap.draw_text(105, -6, 36, 32, $data_system.words.sp)
self.bitmap.draw_text(260 - self.bitmap.text_size("#{@actor.sp}/#{@actor.maxsp}").width, 5, self.bitmap.width, 32, "#{@actor.sp}/#{@actor.maxsp}")
#self.bitmap.draw_text(6, 16, 42, 32, "EXP")
self.bitmap.draw_text(97 - self.bitmap.text_size("#{@actor.now_exp}/#{@actor.next_exp}").width, 35, self.bitmap.width, 32, "#{@actor.now_exp}/#{@actor.next_exp}")
self.bitmap.draw_text(140, 35, self.bitmap.text_size(@actor.level.to_s).width+32, 32, "#{Vocab::HUD_LEVEL} #{@actor.level}")
self.bitmap.draw_text(250, 35, self.bitmap.text_size(@old_gold.to_s.reverse.scan(/...|..|./).join('.').reverse).width+32, 32, @old_gold.to_s.reverse.scan(/...|..|./).join('.').reverse)
# Textos brancos
self.bitmap.font.color = Color.new(255,255,255)
#self.bitmap.draw_text(5, -7, 32, 32, $data_system.words.hp)
self.bitmap.draw_text(104 - self.bitmap.text_size("#{@actor.hp}/#{@actor.maxhp}").width, 5, self.bitmap.width, 32, "#{@actor.hp}/#{@actor.maxhp}")
#self.bitmap.draw_text(104, -7, 36, 32, $data_system.words.sp)
self.bitmap.draw_text(259 - self.bitmap.text_size("#{@actor.sp}/#{@actor.maxsp}").width, 5, self.bitmap.width, 32, "#{@actor.sp}/#{@actor.maxsp}")
#self.bitmap.draw_text(5, 15, 42, 32, "EXP")
#self.bitmap.draw_text(78 - self.bitmap.text_size("#{@actor.now_exp}/#{@actor.next_exp}").width, 25, self.bitmap.width, 32, "#{@actor.now_exp}/#{@actor.next_exp}")
self.bitmap.draw_text(98 - self.bitmap.text_size("#{@actor.now_exp}/#{@actor.next_exp}").width, 35, self.bitmap.width, 32, "#{@actor.now_exp}/#{@actor.next_exp}")
self.bitmap.draw_text(139, 35, self.bitmap.text_size(@actor.level.to_s).width+32, 32, "#{Vocab::HUD_LEVEL} #{@actor.level}")
# Texto amarelo
#self.bitmap.draw_text(5, 15, 42, 32, "EXP")
self.bitmap.font.color = Color.new(255,255,0)
self.bitmap.draw_text(251, 36, self.bitmap.text_size(@old_gold.to_s.reverse.scan(/...|..|./).join('.').reverse).width+32, 32, @old_gold.to_s.reverse.scan(/...|..|./).join('.').reverse)
end
end
#--------------------------------------------------------------------------
# ** Scene_Map
#------------------------------------------------------------------------------
# Para facilitar a troca/remoção desta hud, a class Scene_Map foi
# criada separada.
#--------------------------------------------------------------------------
class Scene_Map
alias hud_main_draw main_draw
alias hud_dispose dispose
alias hud_update update
#--------------------------------------------------------------------------
# * Processamento Principal
#--------------------------------------------------------------------------
def main_draw
@hud = Hud.new
hud_main_draw
end
#--------------------------------------------------------------------------
# * Exibição
#--------------------------------------------------------------------------
def dispose
@hud.dispose
hud_dispose
end
#--------------------------------------------------------------------------
# * Atualização do Frame
#--------------------------------------------------------------------------
def update
@hud.update
hud_update
end
end
Não esqueça de modificar a posição da hotkey caso interfira.
Não está o melhor código mas o trabalho de ajustar as posições está feito.
Imagem :
Espero ter ajudado!.
_________________
using C# and import Python developer || Expert in Unity Engine IDE. || 2D pixel games.
Re: [Resolvido]Ajuda com HUD
Caraca, nem creio que você foi atrás de conseguir arrumar a HUD para mim, sério... Obrigado!
Ficou muito bom, agora poderei continuar com o trabalho dos menus e GUI. Precisar de qualquer ajuda que envolva design só falar! '
Ficou muito bom, agora poderei continuar com o trabalho dos menus e GUI. Precisar de qualquer ajuda que envolva design só falar! '
driko- Semi-Experiente
- Mensagens : 125
Créditos : 7
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Re: [Resolvido]Ajuda com HUD
Sem problemas, tava atoa ai fiquei tentando montar ela e consegui. Gostei desse estilo de HUD que você fez, se tiver algum outro modelo que não for usar e puder me mandar, talvez eu use no unity ou até mesmo no netplay.
_________________
using C# and import Python developer || Expert in Unity Engine IDE. || 2D pixel games.
Aldeia RPG :: RPG Maker :: Rpg Maker XP :: Dúvidas e pedidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos