Entrar
Últimos assuntos
» Problemas com a caixa de diálogo, ela é pequena e as letras não cabem dentropor Rukasu777 Ontem à(s) 18:10
» Problemas com particulas
por RastaMaan Dom 12 maio 2024, 17:03
» Problema ao entrar por uma porta e voltar por ela
por aminaro Seg 06 maio 2024, 10:08
» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43
» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16
» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45
» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18
» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30
» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07
» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45
» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51
» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31
» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11
» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17
» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18
» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34
» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13
» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18
» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12
» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02
» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55
» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42
mostrador de status polygonal
3 participantes
Página 1 de 1
mostrador de status polygonal
- Código:
//essa eh a script e a expilicacao funcional do mostrador
status=7//eh o numero de pontas q ele vai ter ou seja de funcoes q ele vai mostrar
raio=100//eh tamanho d cada raio de cada uma das pontas quando estiver no maximo
cor=c_blue//essa eh acor do interior mostrador q representera seus status
contorno=c_black//eh a cor do contorno do mostrador
posicao_x=100//essa eh aposicao x do centro do mostrador
posicao_y=100//essa eh aposicao y do centro do mostrador
//de o valor de cada statu como health,score,speed aqui estao todos com 50
//aqui eh colocado o q cada statu ira representar por exemplo status_1=speed assim
//o primeiro status representara o speed//
status_1=50 status_2=50 status_3=50 status_4=50
status_5=50 status_6=50 status_7=50 status_8=50
//eh necessario marcar os valores status _max1...2...3...em todos q usar para por exemplo,
//se for speed e seu atual representar 40 por cento do status_max que o representa
//sera preenchido na mesma proporcao isso e para naum ficam nem muito pequeno nem muito grande
status_max1=50 status_2max=50 status_3max=50 status_4max=50
status_5max=50 status_6max=50 status_7max=50 status_8max=50
//os valores status_adpt e o q adaptara o grafico a vc,ele divide o raio pelo statu_max se seu
//statu maximo for igual a 50 entao ele divide por ciquente e depois multiplica este resultado
//pelo statu atual no caso se for iagual ao statu_max sera o valor do raio e assim ficara completo
status_adpt1=(raio/status_max1)*status_1 status_adpt2=(raio/status_2max)*status_2
status_adpt3=(raio/status_2max)*status_3 status_adpt4=(raio/status_4max)*status_4
status_adpt5=(raio/status_5max)*status_5 status_adpt6=(raio/status_6max)*status_6
status_adpt7=(raio/status_7max)*status_7 status_adpt8=(raio/status_8max)*status_8
//a seguir sao as direcoes de cada indicador ele divide os 360graus pelo numero de status
//a serem representados q vc escolheu isso dara o angulo que ficara entre dois estatus
//se vc escolheu oito o por exemplo o resultado sera 45 o primeiro statu sera sempre no
//angulo 0 e a cada 45 graus tera um statu
direcao_2=(360/status)*1 direcao_3=(360/status)*2 direcao_4=(360/status)*3
direcao_5=(360/status)*4 direcao_6=(360/status)*5 direcao_7=(360/status)*6
direcao_oito=(360/status)*7
//este valor representa um grau eu o uso para naum ter q usar pi toda hora
grau=0.01744444444444444444444444
//estes sao os calculos dos pontos para se formar o desenho por exenplo forman se as retas entre o
//(ponto_1x,ponto_1y) e (ponto_2x,ponto_2y) e assim por diante
ponto_1x=posicao_x+cos(0)*status_adpt1 ponto_1y=posicao_y+sin(0)*status_adpt1
ponto_2x=posicao_x+cos(grau*direcao_2)*status_adpt2 ponto_2y=posicao_y+sin(grau*direcao_2)*status_adpt2
ponto_3x=posicao_x+cos(grau*direcao_3)*status_adpt3 ponto_3y=posicao_y+sin(grau*direcao_3)*status_adpt3
ponto_4x=posicao_x+cos(grau*direcao_4)*status_adpt4 ponto_4y=posicao_y+sin(grau*direcao_4)*status_adpt4
ponto_5x=posicao_x+cos(grau*direcao_5)*status_adpt5 ponto_5y=posicao_y+sin(grau*direcao_5)*status_adpt5
ponto_6x=posicao_x+cos(grau*direcao_6)*status_adpt6 ponto_6y=posicao_y+sin(grau*direcao_6)*status_adpt6
ponto_7x=posicao_x+cos(grau*direcao_7)*status_adpt7 ponto_7y=posicao_y+sin(grau*direcao_7)*status_adpt7
ponto_8x=posicao_x+cos(grau*direcao_oito)*status_adpt8 ponto_8y=posicao_y+sin(grau*direcao_oito)*status_adpt8
//os proximos valores desenhara o contorno do mostrador
ponto_c1x=posicao_x+cos(0)*raio ponto_c1y=posicao_y+sin(0)*raio
ponto_c2x=posicao_x+cos(grau*direcao_2)*raio ponto_c2y=posicao_y+sin(grau*direcao_2)*raio
ponto_c3x=posicao_x+cos(grau*direcao_3)*raio ponto_c3y=posicao_y+sin(grau*direcao_3)*raio
ponto_c4x=posicao_x+cos(grau*direcao_4)*raio ponto_c4y=posicao_y+sin(grau*direcao_4)*raio
ponto_c5x=posicao_x+cos(grau*direcao_5)*raio ponto_c5y=posicao_y+sin(grau*direcao_5)*raio
ponto_c6x=posicao_x+cos(grau*direcao_6)*raio ponto_c6y=posicao_y+sin(grau*direcao_6)*raio
ponto_c7x=posicao_x+cos(grau*direcao_7)*raio ponto_c7y=posicao_y+sin(grau*direcao_7)*raio
ponto_c8x=posicao_x+cos(grau*direcao_oito)*raio ponto_c8y=posicao_y+sin(grau*direcao_oito)*raio
//estes textos apareceram nas pontas de cada statu do mostrador
draw_text_color(ponto_c1x,ponto_c1y,'status_1',c_blue,c_black,c_black,c_blue,1)
draw_text_color(ponto_c2x,ponto_c2y,'status_2',c_blue,c_black,c_black,c_blue,1)
draw_text_color(ponto_c3x-60,ponto_c3y,'status_3',c_blue,c_black,c_black,c_blue,1)
if(status>3){draw_text_color(ponto_c4x-60,ponto_c4y,'status_4',c_blue,c_black,c_black,c_blue,1)}
if(status>4){draw_text_color(ponto_c5x-60,ponto_c5y,'status_5',c_blue,c_black,c_black,c_blue,1)}
if(status>5){draw_text_color(ponto_c6x-65,ponto_c6y,'status_6',c_blue,c_black,c_black,c_blue,1)}
if(status>6){draw_text_color(ponto_c7x,ponto_c7y-20,'status_7',c_blue,c_black,c_black,c_blue,1)}
if(status>7){draw_text_color(ponto_c8x,ponto_c8y,'status_8',c_blue,c_black,c_black,c_blue,1)}
//os valores a seguir desenhara um poligono igual ao do contorno mas dividido por dois
//representara sempre a metade do statu total
ponto_d1x=posicao_x+cos(0)*raio/2 ponto_d1y=posicao_y+sin(0)*raio/2
ponto_d2x=posicao_x+cos(grau*direcao_2)*raio/2 ponto_d2y=posicao_y+sin(grau*direcao_2)*raio/2
ponto_d3x=posicao_x+cos(grau*direcao_3)*raio/2 ponto_d3y=posicao_y+sin(grau*direcao_3)*raio/2
ponto_d4x=posicao_x+cos(grau*direcao_4)*raio/2 ponto_d4y=posicao_y+sin(grau*direcao_4)*raio/2
ponto_d5x=posicao_x+cos(grau*direcao_5)*raio/2 ponto_d5y=posicao_y+sin(grau*direcao_5)*raio/2
ponto_d6x=posicao_x+cos(grau*direcao_6)*raio/2 ponto_d6y=posicao_y+sin(grau*direcao_6)*raio/2
ponto_d7x=posicao_x+cos(grau*direcao_7)*raio/2 ponto_d7y=posicao_y+sin(grau*direcao_7)*raio/2
ponto_d8x=posicao_x+cos(grau*direcao_oito)*raio/2 ponto_d8y=posicao_y+sin(grau*direcao_oito)*raio/2
//a seguir seguir o desenho q sera feito pelos status repare q a partir da terceira ponta
//esta marcado antes como if ou seja 'se' e so desenhara se for necessario
draw_primitive_begin(pr_trianglefan)
draw_vertex_color(ponto_1x,ponto_1y,cor,0.2)draw_vertex_color(ponto_2x,ponto_2y,cor,0.9)
draw_vertex_color(ponto_3x,ponto_3y,cor,0.9)
if(status>3){draw_vertex_color(ponto_4x,ponto_4y,cor,0.9)}
if(status>4){draw_vertex_color(ponto_5x,ponto_5y,cor,0.9)}
if(status>5){draw_vertex_color(ponto_6x,ponto_6y,cor,0.9)}
if(status>6){draw_vertex_color(ponto_7x,ponto_7y,cor,0.9)}
if(status>7){draw_vertex_color(ponto_8x,ponto_8y,cor,0.9)}
draw_primitive_end()
//aqui serao desenhadas as retas do contorno apenas os o necessarios
draw_line_color(ponto_c1x,ponto_c1y,ponto_c2x,ponto_c2y,contorno,contorno)
draw_line_color(ponto_c2x,ponto_c2y,ponto_c3x,ponto_c3y,contorno,contorno)
draw_line_color(ponto_c3x,ponto_c3y,ponto_c4x,ponto_c4y,contorno,contorno)
if(status>3){draw_line_color(ponto_c4x,ponto_c4y,ponto_c5x,ponto_c5y,contorno,contorno)}
if(status>4){draw_line_color(ponto_c5x,ponto_c5y,ponto_c6x,ponto_c6y,contorno,contorno)}
if(status>5){draw_line_color(ponto_c6x,ponto_c6y,ponto_c7x,ponto_c7y,contorno,contorno)}
if(status>6){draw_line_color(ponto_c7x,ponto_c7y,ponto_c8x,ponto_c8y,contorno,contorno)}
if(status>7){draw_line_color(ponto_c8x,ponto_c8y,ponto_c1x,ponto_c1y,contorno,contorno)}
//aqui serao desenhadas as retas do poligono que representara metade de cada stataus
draw_line_color(ponto_d1x,ponto_d1y,ponto_d2x,ponto_d2y,contorno,contorno)
draw_line_color(ponto_d2x,ponto_d2y,ponto_d3x,ponto_d3y,contorno,contorno)
draw_line_color(ponto_d3x,ponto_d3y,ponto_d4x,ponto_d4y,contorno,contorno)
if(status>3){draw_line_color(ponto_d4x,ponto_d4y,ponto_d5x,ponto_d5y,contorno,contorno)}
if(status>4){draw_line_color(ponto_d5x,ponto_d5y,ponto_d6x,ponto_d6y,contorno,contorno)}
if(status>5){draw_line_color(ponto_d6x,ponto_d6y,ponto_d7x,ponto_d7y,contorno,contorno)}
if(status>6){draw_line_color(ponto_d7x,ponto_d7y,ponto_d8x,ponto_d8y,contorno,contorno)}
if(status>7){draw_line_color(ponto_d8x,ponto_d8y,ponto_d1x,ponto_d1y,contorno,contorno)}
//e aqui serao desenhadas retas do centro ate cada ponto maximo de cada status
draw_line_color(posicao_x,posicao_y,ponto_c2x,ponto_c2y,contorno,contorno)
draw_line_color(posicao_x,posicao_y,ponto_c3x,ponto_c3y,contorno,contorno)
draw_line_color(posicao_x,posicao_y,ponto_c4x,ponto_c4y,contorno,contorno)
if(status>3){draw_line_color(posicao_x,posicao_y,ponto_c5x,ponto_c5y,contorno,contorno)}
if(status>4){draw_line_color(posicao_x,posicao_y,ponto_c6x,ponto_c6y,contorno,contorno)}
if(status>5){draw_line_color(posicao_x,posicao_y,ponto_c7x,ponto_c7y,contorno,contorno)}
if(status>6){draw_line_color(posicao_x,posicao_y,ponto_c8x,ponto_c8y,contorno,contorno)}
if(status>7){draw_line_color(posicao_x,posicao_y,ponto_c1x,ponto_c1y,contorno,contorno)}
//testem e escrevam depois
Última edição por Thyago em Qui 03 Set 2009, 16:38, editado 8 vez(es)
Thyago- Games Ranking :
Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Reputação : 31
Número de Mensagens : 1101
Prêmios :
x 0 x 0 x 0
x 1 x 1 x 0
x 0 x 0 x 0
Re: mostrador de status polygonal
interessante,mas axo q podia ta mais organizado
eu acabei me perdendo no meio do seu post...
eu acabei me perdendo no meio do seu post...
SIGILOSO- Games Ranking :
Notas recebidas : A+A+A+A+A+A+A
Data de inscrição : 06/06/2009
Reputação : 39
Número de Mensagens : 2267
Prêmios :
x 0 x 2 x 0
x 4 x 2 x 1
x 0 x 0 x 0
Re: mostrador de status polygonal
Coloque dentro da tag '[code]', pois alguns caracteres do código foram substituídos por emoticons.
Re: mostrador de status polygonal
eh so selecionar tudo de uma vez copiar q vai ficar certo no script
so mexa depois q colar tudo;
so mexa depois q colar tudo;
Última edição por Thyago em Qua 02 Set 2009, 08:35, editado 2 vez(es)
Thyago- Games Ranking :
Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Reputação : 31
Número de Mensagens : 1101
Prêmios :
x 0 x 0 x 0
x 1 x 1 x 0
x 0 x 0 x 0
Re: mostrador de status polygonal
é altomatico do forum,o número 8 seguido de parentes faz aparecer o .
por isso é importante se organizar,e nesse caso o ideal seria usar a função code,antes de postar o script vc clika naquele botao com duas setinhas azuis,e clika de novo quando acaba de digita o script
por isso é importante se organizar,e nesse caso o ideal seria usar a função code,antes de postar o script vc clika naquele botao com duas setinhas azuis,e clika de novo quando acaba de digita o script
SIGILOSO- Games Ranking :
Notas recebidas : A+A+A+A+A+A+A
Data de inscrição : 06/06/2009
Reputação : 39
Número de Mensagens : 2267
Prêmios :
x 0 x 2 x 0
x 4 x 2 x 1
x 0 x 0 x 0
Tópicos semelhantes
» Como guardar status de num obj
» [Resolvido]Como fazer os status não resetarem?
» como zerar os status de uma room persistent
» [Ajuda] Trocar de Room e manter status
» Engine de mostrar status do player em cima dele
» [Resolvido]Como fazer os status não resetarem?
» como zerar os status de uma room persistent
» [Ajuda] Trocar de Room e manter status
» Engine de mostrar status do player em cima dele
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|