HUD Totalmente por eventos
3 participantes
Página 1 de 1
HUD Totalmente por eventos
HUD Totalmente por eventos
por zé comeia
Características:
ScreenShot:
Download:
Clique Aqui(download via 4shared)
Créditos e Agradecimentos:
Aero por fazer as imagens usadas nessa demo
zecomeia por programar o sistema
Thibra pela solução pra facilitar o calculo da barra
Linkei pela dica interessante sobre as barras de experiência e próximo level
Informações sobre como utilizar:
Caso for usar esta HUD do jeito em que está mudando apenas as imagens tenha em mente as seguintes informações sobre cada imagem da mesma(para ajudar use como template as imagens na pasta picture da demo):
Tutorial:
Começando pelas barras
O calculo de todas as barras são muito simples e seguem quase em todos os casos a mesma forma.
Acho que muitos devem conhecer o velho, bom e simples calculo de porcentagem?Então é ele mesmo que foi usado.Lembram que foi dito na descrição das imagens que as barras tem que ter 100pixeis na horizontal?O motivo é deixar a precisão da barra no deslocamento de 1 pixel para cada 1% do estato em questão(HP, MP,etc).Então seria o seguinte:
no caso do HP
variavel_HP = HP do personagem
variavel_HP *= Largura da barra
variavel_HP /= HP maximo do personagem
Após o calculo pegamos o valor da variavel_HP e colocamos como a coordenada X do "mostrar imagem" da barra em questão e, se preciso, somamos um valor a variavel_HP para melhor posiciona-la.
no caso do MP
variavel_MP = MP do personagem
variavel_MP *= Largura da barra
variavel_MP /= MP maximo do personagem
Após o calculo pegamos o valor da variavel_MP e colocamos como a coordenada X do "mostrar imagem" da barra em questão e, se preciso, somamos um valor a variavel_MP para melhor posiciona-la.
Já no caso da experiência, se olhar no controle de variaveis verá que não existe um "EXP max", portanto foi preciso fazer um pré calculo para descobrirmos qual o valor máximo.
[001]EXP_Calc_Bar1 = EXP do personagem
Mudar nível: Todo o grupo +1 nivel
[002]EXP_Calc_Bar4 = EXP do personagem
Mudar nível: Todo o grupo -1 nivel
[003]EXP_Calc_Bar2 = EXP do personagem
[004]EXP_Calc_Bar3 = [003]EXP_Calc_Bar2
[001]EXP_Calc_Bar1 -= [004]EXP_Calc_Bar3
Mudar Experiência: Todo o grupo +[001]EXP_Calc_Bar1
#Comentario: Aqui já começa o simples calculo de porcentagem
[002]EXP_Calc_Bar4 -= [003]EXP_Calc_Bar2
[001]EXP_Calc_Bar1 *= Largura da barra
[001]EXP_Calc_Bar1 /= [002]EXP_Calc_Bar4
*OBS: para a barra de próximo level, faça o mesmo calculo acima porém será acrecentado algo mais. Veja:
[001]EXP_Calc_Bar1 = EXP do personagem
Mudar nível: Todo o grupo +1 nivel
[002]EXP_Calc_Bar4 = EXP do personagem
Mudar nível: Todo o grupo -1 nivel
[003]EXP_Calc_Bar2 = EXP do personagem
[004]EXP_Calc_Bar3 = [003]EXP_Calc_Bar2
[001]EXP_Calc_Bar1 -= [004]EXP_Calc_Bar3
Mudar Experiência: Todo o grupo +[001]EXP_Calc_Bar1
#Comentario: Aqui já começa o simples calculo de porcentagem
[002]EXP_Calc_Bar4 -= [003]EXP_Calc_Bar2
[001]EXP_Calc_Bar1 *= Largura da barra
[001]EXP_Calc_Bar1 /= [002]EXP_Calc_Bar4
Next_exp_bar = [001]EXP_Calc_Bar1
Next_exp_bar += 1
Next_exp_bar *= -1
Next_exp_bar += 1
Após o calculo pegamos o valor da EXP e colocamos como a coordenada X do "mostrar imagem" da barra em questão e, se preciso, somamos um valor a EXP para melhor posiciona-la.
Bem simples agora certo.No meio dos calculos da experiência foi colocado uma instrução dizendo para fazer condições para as habilidades, isso porque se você parar pra pensar perceberá que caso o personagem esteja no level 8 por exemplo, e aprenda uma magia no level 9 então essa magia já será aprendida no level 8 por causa do comando de subir +1 level.Existe outra forma de driblar isso simplesmente aumentando um no level de cada magia que vai ser aprendida no Database do seu jogo, mas aí pode parecer gambiarra alem de possível privação de utilizar o level 99 para aprender uma habilidade, ainda não pensei na possibilidade.Use a imaginação, combine as idéias, talvez poupe seu trabalho fazendo a condição apenas para uma magia no level 99.
DICA:
Usar a barra de experiência e de próximo level na HUD pode ficar meio estranho porque a diferença está apenas na direção que a barra se move, quando uma está no máximo outra está no mínimo e vice versa.Uma idéia proposta por Linkei é fazer a barra de experiência como uma barra total, ou seja, de toda esperiência ganha no jogo sendo que só chegaria ao máximo no ultimo level, enquanto a de próximo level continua no mesmo equema.
O Contador de level
É bem simples fazer este contador também.Como foi dito no começo, são usadas 10 imagens, cada imagem contem um número de 0 a 9.Como o level no database só vai até 99 então faremos um contador de apenas 2 digitos, que são as:
Unidades
Como o no database o level vai até 99(2 digitos) então para pegarmos a casa das unidades pegamos o resto do LV divido por 10.
variavel_LV = Level do personagem
variavel_LV %= 10
variavel_LV(unidades) = variavel_LV
Agora a variável "variavel_LV(unidades)" tem o valor das unidades do level, então basta criar 10 condições onde cada uma verifica se "variavel_LV(unidades)" é igual a um número de 0 a 9, e então no corpo da condição colocamos o comando de mostrar imagem com a imagem do número correspondente(use o mesmo número para todas as imagens).Vamos colocar uma condição na exceção da outra(com exceção da ultima) para amenizar possiveis problemas com lag.
se variavel_LV(unidades) == 0
mostrar imagem(10, "numero0", x, y)
exceção
se variavel_LV(unidades) == 1
mostrar imagem(10, "numero1", x, y)
exceção
se variavel_LV(unidades) == 2
mostrar imagem(10, "numero2", x, y)
exceção
...
...
... até chegar ao 9
Para evitar mais o lag, faça isso dentro da condição de level Up/Down, assim só será analisadas essas condições e executados os eventos quando mudar de level.
Dezenas
É feito da mesma forma das unidades, porem ao invez de pegarmos o resto da divisão por 10, apenas dividimos por, veja:
variavel_LV = Level do personagem
variavel_LV /= 10
variavel_LV(dezenas) = variavel_LV
O resto do procedimento também é o mesmo, basta trocar o número da imagem, a posição(X,Y).
se variavel_LV(dezenas) == 0
mostrar imagem(11, "numero0", x, y)
exceção
se variavel_LV(dezenas) == 1
mostrar imagem(11, "numero1", x, y)
exceção
se variavel_LV(dezenas) == 2
mostrar imagem(11, "numero2", x, y)
exceção
...
...
... até chegar ao 9
Para evitar mais o lag, faça isso dentro da condição de level Up/Down, assim só será analisadas essas condições e executados os eventos quando mudar de level.
Level UP/Level Down
Basicamente existem duas variaveis que ambas contem o valor do level do herói, porém uma é atualizada constantemente ja a outra apenas quando o herói subir/descer o level.Essa pate do sistema é dividido uma parte para o level up e e outra para o level down, a diferença fundamental entre os dois é apenas a primeira condição onde uma comprar se a variavel que é atualizada constantemente é maior que a outra, e no caso do level down a comparação é o inverso, ou seja, é comparado se a variavel constantemente atualizada é menor que a outra.
Fora isso o resto se trata de eventos visuais/audiveis para indicar o level up ou level down.E outra coisa também importante é que são atualizados alguns valores para evitar bugs, etc.
Estados
Essa indiscutivelmente é a parte mais básica desta HUD.Simplesmente é criada uma variavel que vai ser usada para fazermos as condições onde cada condição, em seu corpo, tem um comando para mostrar a imagem do icone do estado na HUD e atribuir aquele estado ao herói.Foram colcadas algumas bobagensinhas a mais como causar "Game Over" quando o personagem chegar a HP=0(estado morto), e antes do game over mudar o gráfico do herói para deixa-lo deitado indicando que está morto.
por zé comeia
Características:
- Barra de HP;
- Barra de MP;
- Barra de EXP;
- Barra de EXP para próximo level;
- Level do personagem;
- Face com nome do personagem;
- Estado do herói(evenenado, cego, etc.);
- "Level UP!" e "Level Down!".
ScreenShot:
Download:
Clique Aqui(download via 4shared)
Créditos e Agradecimentos:
Aero por fazer as imagens usadas nessa demo
zecomeia por programar o sistema
Thibra pela solução pra facilitar o calculo da barra
Linkei pela dica interessante sobre as barras de experiência e próximo level
Informações sobre como utilizar:
Caso for usar esta HUD do jeito em que está mudando apenas as imagens tenha em mente as seguintes informações sobre cada imagem da mesma(para ajudar use como template as imagens na pasta picture da demo):
- 10 imagens com os números de 0 a 9(para mostrar o nível do personagem);
- 1 imagem/icone de "level up" e 1 de "level down";
- Icones para mostrar cada estado do herói(envenenado,cego,morto,etc);
- Um fundo para a HUD(porque se não nos movimentos de barras,etc, o fundo vai ficar como cenário);
- Uma imagem com a face e nome do herói devidamente posicionados(siga o template).Envolto à face não deixe transparente porque as barras poderam aparecer por traz, mas deixe tranparente o resto, se não as barras podem ser cobertas por causa que a face com o nome esta em um layer acima(SIGA O TEMPLATE!).
- 4 imagens para as barras(pode usar a mesma imagem paras as quatro se preferir).O essencial ao fazer a barra é que ela tenha 100pixeis de comprimento na horizontal(largura,eixo X), já na vertical não importa.
- Uma imagem para ser a "capa" HUD, ou seja, estará no layer de maior prioridade, portanto lembre-se de fazer "furos"(deixar transparente) onde estão localizados os outros gráficos se não os mesmo vão ficar cobertos pela capa da HUD e não aparecerão.
Tutorial:
Começando pelas barras
O calculo de todas as barras são muito simples e seguem quase em todos os casos a mesma forma.
Acho que muitos devem conhecer o velho, bom e simples calculo de porcentagem?Então é ele mesmo que foi usado.Lembram que foi dito na descrição das imagens que as barras tem que ter 100pixeis na horizontal?O motivo é deixar a precisão da barra no deslocamento de 1 pixel para cada 1% do estato em questão(HP, MP,etc).Então seria o seguinte:
no caso do HP
variavel_HP = HP do personagem
variavel_HP *= Largura da barra
variavel_HP /= HP maximo do personagem
Após o calculo pegamos o valor da variavel_HP e colocamos como a coordenada X do "mostrar imagem" da barra em questão e, se preciso, somamos um valor a variavel_HP para melhor posiciona-la.
no caso do MP
variavel_MP = MP do personagem
variavel_MP *= Largura da barra
variavel_MP /= MP maximo do personagem
Após o calculo pegamos o valor da variavel_MP e colocamos como a coordenada X do "mostrar imagem" da barra em questão e, se preciso, somamos um valor a variavel_MP para melhor posiciona-la.
Já no caso da experiência, se olhar no controle de variaveis verá que não existe um "EXP max", portanto foi preciso fazer um pré calculo para descobrirmos qual o valor máximo.
[001]EXP_Calc_Bar1 = EXP do personagem
Mudar nível: Todo o grupo +1 nivel
[002]EXP_Calc_Bar4 = EXP do personagem
Mudar nível: Todo o grupo -1 nivel
[003]EXP_Calc_Bar2 = EXP do personagem
[004]EXP_Calc_Bar3 = [003]EXP_Calc_Bar2
[001]EXP_Calc_Bar1 -= [004]EXP_Calc_Bar3
Mudar Experiência: Todo o grupo +[001]EXP_Calc_Bar1
#Comentario: Aqui já começa o simples calculo de porcentagem
[002]EXP_Calc_Bar4 -= [003]EXP_Calc_Bar2
[001]EXP_Calc_Bar1 *= Largura da barra
[001]EXP_Calc_Bar1 /= [002]EXP_Calc_Bar4
*OBS: para a barra de próximo level, faça o mesmo calculo acima porém será acrecentado algo mais. Veja:
[001]EXP_Calc_Bar1 = EXP do personagem
Mudar nível: Todo o grupo +1 nivel
[002]EXP_Calc_Bar4 = EXP do personagem
Mudar nível: Todo o grupo -1 nivel
[003]EXP_Calc_Bar2 = EXP do personagem
[004]EXP_Calc_Bar3 = [003]EXP_Calc_Bar2
[001]EXP_Calc_Bar1 -= [004]EXP_Calc_Bar3
Mudar Experiência: Todo o grupo +[001]EXP_Calc_Bar1
#Comentario: Aqui já começa o simples calculo de porcentagem
[002]EXP_Calc_Bar4 -= [003]EXP_Calc_Bar2
[001]EXP_Calc_Bar1 *= Largura da barra
[001]EXP_Calc_Bar1 /= [002]EXP_Calc_Bar4
Next_exp_bar = [001]EXP_Calc_Bar1
Next_exp_bar += 1
Next_exp_bar *= -1
Next_exp_bar += 1
Após o calculo pegamos o valor da EXP e colocamos como a coordenada X do "mostrar imagem" da barra em questão e, se preciso, somamos um valor a EXP para melhor posiciona-la.
Bem simples agora certo.No meio dos calculos da experiência foi colocado uma instrução dizendo para fazer condições para as habilidades, isso porque se você parar pra pensar perceberá que caso o personagem esteja no level 8 por exemplo, e aprenda uma magia no level 9 então essa magia já será aprendida no level 8 por causa do comando de subir +1 level.Existe outra forma de driblar isso simplesmente aumentando um no level de cada magia que vai ser aprendida no Database do seu jogo, mas aí pode parecer gambiarra alem de possível privação de utilizar o level 99 para aprender uma habilidade, ainda não pensei na possibilidade.Use a imaginação, combine as idéias, talvez poupe seu trabalho fazendo a condição apenas para uma magia no level 99.
DICA:
Usar a barra de experiência e de próximo level na HUD pode ficar meio estranho porque a diferença está apenas na direção que a barra se move, quando uma está no máximo outra está no mínimo e vice versa.Uma idéia proposta por Linkei é fazer a barra de experiência como uma barra total, ou seja, de toda esperiência ganha no jogo sendo que só chegaria ao máximo no ultimo level, enquanto a de próximo level continua no mesmo equema.
O Contador de level
É bem simples fazer este contador também.Como foi dito no começo, são usadas 10 imagens, cada imagem contem um número de 0 a 9.Como o level no database só vai até 99 então faremos um contador de apenas 2 digitos, que são as:
Unidades
Como o no database o level vai até 99(2 digitos) então para pegarmos a casa das unidades pegamos o resto do LV divido por 10.
variavel_LV = Level do personagem
variavel_LV %= 10
variavel_LV(unidades) = variavel_LV
Agora a variável "variavel_LV(unidades)" tem o valor das unidades do level, então basta criar 10 condições onde cada uma verifica se "variavel_LV(unidades)" é igual a um número de 0 a 9, e então no corpo da condição colocamos o comando de mostrar imagem com a imagem do número correspondente(use o mesmo número para todas as imagens).Vamos colocar uma condição na exceção da outra(com exceção da ultima) para amenizar possiveis problemas com lag.
se variavel_LV(unidades) == 0
mostrar imagem(10, "numero0", x, y)
exceção
se variavel_LV(unidades) == 1
mostrar imagem(10, "numero1", x, y)
exceção
se variavel_LV(unidades) == 2
mostrar imagem(10, "numero2", x, y)
exceção
...
...
... até chegar ao 9
Para evitar mais o lag, faça isso dentro da condição de level Up/Down, assim só será analisadas essas condições e executados os eventos quando mudar de level.
Dezenas
É feito da mesma forma das unidades, porem ao invez de pegarmos o resto da divisão por 10, apenas dividimos por, veja:
variavel_LV = Level do personagem
variavel_LV /= 10
variavel_LV(dezenas) = variavel_LV
O resto do procedimento também é o mesmo, basta trocar o número da imagem, a posição(X,Y).
se variavel_LV(dezenas) == 0
mostrar imagem(11, "numero0", x, y)
exceção
se variavel_LV(dezenas) == 1
mostrar imagem(11, "numero1", x, y)
exceção
se variavel_LV(dezenas) == 2
mostrar imagem(11, "numero2", x, y)
exceção
...
...
... até chegar ao 9
Para evitar mais o lag, faça isso dentro da condição de level Up/Down, assim só será analisadas essas condições e executados os eventos quando mudar de level.
Level UP/Level Down
Basicamente existem duas variaveis que ambas contem o valor do level do herói, porém uma é atualizada constantemente ja a outra apenas quando o herói subir/descer o level.Essa pate do sistema é dividido uma parte para o level up e e outra para o level down, a diferença fundamental entre os dois é apenas a primeira condição onde uma comprar se a variavel que é atualizada constantemente é maior que a outra, e no caso do level down a comparação é o inverso, ou seja, é comparado se a variavel constantemente atualizada é menor que a outra.
Fora isso o resto se trata de eventos visuais/audiveis para indicar o level up ou level down.E outra coisa também importante é que são atualizados alguns valores para evitar bugs, etc.
Estados
Essa indiscutivelmente é a parte mais básica desta HUD.Simplesmente é criada uma variavel que vai ser usada para fazermos as condições onde cada condição, em seu corpo, tem um comando para mostrar a imagem do icone do estado na HUD e atribuir aquele estado ao herói.Foram colcadas algumas bobagensinhas a mais como causar "Game Over" quando o personagem chegar a HP=0(estado morto), e antes do game over mudar o gráfico do herói para deixa-lo deitado indicando que está morto.
Re: HUD Totalmente por eventos
Caaara que isso, HUD muito perfeita e totalmente compleeta. E aindaa maais por scripts que nãao teem perigo de incompatibilidade.
Mais um ponto de fama por trazer.
Mais um ponto de fama por trazer.
Re: HUD Totalmente por eventos
pena que não tem demo pra vx =)
eu sinceramente não tive paciencia pra fazer a barra de exp
eu sinceramente não tive paciencia pra fazer a barra de exp
Re: HUD Totalmente por eventos
Eu juro que quando vi o sistema na SRM eu pensei que era por scripts, isso até baixar.
É realmente invejável, e muito bom.
É realmente invejável, e muito bom.
Tópicos semelhantes
» MP3 Player Eventos
» Eventos oficiais
» [RM2k]Title por eventos
» Sistema de Cheats Por eventos
» Game Over por eventos (By: Snake Death)
» Eventos oficiais
» [RM2k]Title por eventos
» Sistema de Cheats Por eventos
» Game Over por eventos (By: Snake Death)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos