Conectar-se
Quem está conectado
20 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 20 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 20/12/2010
Número de Mensagens : 424
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 52

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Healthbar redonda NÍVEL INICIANTE!

em Dom 13 Abr 2014, 13:14
Reputação da mensagem: 100% (1 votos)
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 >>>>>>>>>>>>>>>>>>>>
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)
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 07/09/2010
Número de Mensagens : 1400
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 21

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Healthbar redonda NÍVEL INICIANTE!

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í.
avatar
Data de inscrição : 20/12/2010
Número de Mensagens : 424
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 52

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Healthbar redonda NÍVEL INICIANTE!

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.
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 07/09/2010
Número de Mensagens : 1400
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 21

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Healthbar redonda NÍVEL INICIANTE!

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.
avatar
Ranking : Nota B
Notas recebidas : E + D + C + B + D +B + A
Data de inscrição : 05/11/2011
Número de Mensagens : 635
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 22

Prêmios
   : 1
   : 0
   : 1
Ver perfil do usuário

Re: Healthbar redonda NÍVEL INICIANTE!

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...
avatar
Data de inscrição : 02/10/2009
Número de Mensagens : 2227
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 52

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Healthbar redonda NÍVEL INICIANTE!

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#
avatar
Data de inscrição : 22/03/2014
Número de Mensagens : 103
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 9

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Healthbar redonda NÍVEL INICIANTE!

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
avatar
Ranking : Nota D
Data de inscrição : 25/03/2014
Número de Mensagens : 399
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 37

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Healthbar redonda NÍVEL INICIANTE!

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...
avatar
Data de inscrição : 20/12/2010
Número de Mensagens : 424
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 52

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Healthbar redonda NÍVEL INICIANTE!

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 
avatar
Ranking : Nota D
Data de inscrição : 25/03/2014
Número de Mensagens : 399
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 37

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Healthbar redonda NÍVEL INICIANTE!

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.
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum