Faalco


Mensagens: 42 Data de inscrição: 03/06/2010 Idade: 20
 | Assunto: Criando uma HUD simples de HP e MP na tela Qua Jul 07, 2010 8:13 pm | |
| IntroduçãoOi 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
|
|
|