Healthbar redonda NÍVEL INICIANTE!

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

Healthbar redonda NÍVEL INICIANTE!

Mensagem por polosam em Dom 13 Abr 2014, 13:14

Nome: HEALTHBAR REDONDA PARA INICIANTES!
Requerimentos: Qualquer versão PRO do game maker

Descrição: Esta engine emula um leque retrátil com valores relativos de ângulo/life
Nível de dificuldade: Iniciante
Controles:
     Click esquerdo=diminui life
     Click direito = aumenta o life
     Botão do meio do mouse = reseta a room


<<<<<<<<<<<<<<<<< Download >>>>>>>>>>>>>>>>>>>>
http://www.4shared.com/file/OakNleB8ce/POLOSAM_E_SUA_HEALTHBAR_REDOND.html

E aí, beleza? Ontem à noite eu estava pensando: como fazer uma healthbar redonda sem surfaces?  zangado 
 Tive a ideia de usar um gráfico de pizza, então pesquisei pie chart no fórum do GMC. Resultado: vi que tinha tantas variáveis e linhas que eu nem li até o final. É muito difícil!

 Fiquei decepcionado, eu sempre quis uma healthbar redonda, e para usar um código daqueles, melhor desistir. Fui para o youtube, terminar a noite vendo trailers de jogos que não posso comprar.
 Foi aí que, assistindo a um vídeo do Mortal Kombat 2011, percebi que o leque da Kitana, apesar de redondo, é retrátil!  

Eis minha solução: fazer draw em 29 triângulos pequenos, sendo que o triângulo "guia" tem uma razão entre a image_angle e o life: São 360 graus = 100 pontos de life, logo, para cada ponto de life perdido, acrescentar 3,6º!

 É basicamente um leque que vai se abrindo, onde os demais triângulos que seguem o "guia" adotam posições de image_angle que são divisões relativas à posição dele; Se o guia estiver com ângulo=10, outro triângulo terá como ângulo esse valor dividido por 1.25, algo assim. O guia arrasta seus seguidores de maneira irregular, de modo a deixá-los pelo caminho!

(De repente os usuários avançados podem ter soluções melhores que esta, mas vale conferir.)


Última edição por polosam em Seg 14 Abr 2014, 20:13, editado 2 vez(es)

polosam

Número de Mensagens : 424
Idade : 24
Data de inscrição : 20/12/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Healthbar redonda NÍVEL INICIANTE!

Mensagem por Mr. Kaleb em Dom 13 Abr 2014, 14:08

É uma solução, mas infelizmente pesa muito.
Um jeito simples de fazer isso é usar primitives, algo como isso:
Código:
for (i=0; i<360/vida; i+=1)
{draw_primitive_begin(pr_trianglestrip)
//desenha o raio exterior com vertices usando lengthdir
//desenha o raio interior //-------------//-------------//
draw_primitive_end();}
Não desenvolvi bem a ideia mas é por aí.

Mr. Kaleb

Ranking : Nota C
Número de Mensagens : 1400
Idade : 19
Data de inscrição : 07/09/2010
Notas recebidas : C
Reputação : 21
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Healthbar redonda NÍVEL INICIANTE!

Mensagem por polosam em Dom 13 Abr 2014, 14:21

O problema com os trianglestrip é que não consegui uma curva... 
 ... E não sei o que pesa mais, draw de vários objetos com ângulos subdivididos ou surfaces.

polosam

Número de Mensagens : 424
Idade : 24
Data de inscrição : 20/12/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Healthbar redonda NÍVEL INICIANTE!

Mensagem por Mr. Kaleb em Dom 13 Abr 2014, 14:38

Com certeza o draw pesa muito mais.
E no meu método, você não usa surfaces. E o lengthdir é que faz a curva acontecer.

Mr. Kaleb

Ranking : Nota C
Número de Mensagens : 1400
Idade : 19
Data de inscrição : 07/09/2010
Notas recebidas : C
Reputação : 21
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Healthbar redonda NÍVEL INICIANTE!

Mensagem por Kapoty em Dom 13 Abr 2014, 15:47

Fiz um exemplo usando o método descrito pelo Mr.Kaleb:

https://dl.dropboxusercontent.com/u/78063995/Healthbar%20Redonda.gmk

Ignore a sprite...

Kapoty

Ranking : Nota B
Número de Mensagens : 635
Data de inscrição : 05/11/2011
Notas recebidas : E + D + C + B + D +B + A
Reputação : 22
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Re: Healthbar redonda NÍVEL INICIANTE!

Mensagem por Gabreel em Dom 13 Abr 2014, 16:09

Vendo aqui, o método do #Polosam# é  até 450% mais rápido que o de vocês #Mr. Kaleb# e #Kapoty#

Gabreel

Número de Mensagens : 2227
Idade : 20
Data de inscrição : 02/10/2009
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Healthbar redonda NÍVEL INICIANTE!

Mensagem por Superbomber_MuyMacho em Dom 13 Abr 2014, 23:34

Muito bom polosan mais um belo tutorial, que irá ajudar muitas pessoas. Ta de parabéns. Foi uma ótima ideia. blz

Superbomber_MuyMacho

Número de Mensagens : 103
Idade : 19
Data de inscrição : 22/03/2014
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Healthbar redonda NÍVEL INICIANTE!

Mensagem por Mateus O de Andrade em Seg 14 Abr 2014, 11:42

Cara,
ADOREI A BARRA ASSIM!!!
Ficou nota  dez mesmo!
Pena que eu sou TÃO leigo em GML que eu só o que eu entendi até agora foi " Bla, bla bla...bla, bla... bla, bla, bla, bla!" nervoso 
Tomei a maior surra pra fazer uma vertical com sprites e D&D ontem!
Ainda quero aprender a fazer ela seguir o char pois não fiz ela totalmente em GML para poder aplicar as views...

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 31
Data de inscrição : 25/03/2014
Reputação : 37
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Healthbar redonda NÍVEL INICIANTE!

Mensagem por polosam em Seg 14 Abr 2014, 20:27

Mateus, você não precisa aprender aquele código grandão do draw, aquilo eu fiz na base do testômetro, de um por um. Primeiro eu defini o triângulo guia, sem problemas. Depois, minha dificuldade foi estabelecer a posição dos outros triângulos que seriam arrastados pelo guia. A dificuldade foi só minha mesmo, os draws são funcionais e podem ser copiados como estão, sem necessidade de assimilação. Copie o código e pronto, não tem erro.
 
 Se não ficou muito claro, vou explicar uma coisa em particular:
Quando eu escrevo que o image_angle de uma coisa verde é 10, será realmente 10. Se o ângulo de uma coisa azul for igual ao ângulo da coisa verde / 1.1, significa que a coisa azul está sendo arrastada a uma posição equivalente muito próxima da coisa verde. Note que quanto maior o número da divisão do image_angle, tipo 2, 4, 8, 16, menor é o arrasto. Quanto mais próximo de 1, mas próximo o objeto arrastado estará de seu guia.  Happy 

polosam

Número de Mensagens : 424
Idade : 24
Data de inscrição : 20/12/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Healthbar redonda NÍVEL INICIANTE!

Mensagem por Mateus O de Andrade em Ter 15 Abr 2014, 10:21

É que eu gosto de ler os códigos e tentar assimilar e entender o por que da utilização de cada trecho. Sempre aprendo alguma coisa nova dessa forma.
Não suporto "Ctrl+C", "Ctrl+V" cara, não se aprende nada com isso.
Prefiro digitar um código 20 vezes errado e ir acertando aos poucos que copiar e colar! Sem contar que ainda tem muita coisa que só sei fazer com o D&D, mas aos poucos eu vou lapidando meu GML.

Muito obrigado pelo tutorial cara, assim que tiver tempo eu vou dar uma estudada nele.

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 31
Data de inscrição : 25/03/2014
Reputação : 37
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Healthbar redonda NÍVEL INICIANTE!

Mensagem por Conteúdo patrocinado Hoje à(s) 21:13


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum