Forums » RGSS

Criando uma HUD simples de HP e MP na tela

    • 683 posts
    4 de junho de 2015 13h33min18s ART

    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:

    class HUD <Sprite   #Inicia   def initialize(view)     super(view)


    E então, você deve criar as cores que você quer usar exemplo:

        @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:

        #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

      #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:

        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:

        #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:

      def dispose     self.bitmap.dispose     super   endend


    E por fim, instale a HUD no mapa:

    #Instala o HUDclassSpriteset_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   endend



    Créditos

    Lembro que peguei uma HUD na internet a muito tempo que era assim, modifiquei, fiz algumas mudanças e criei o tutorial.