GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Servidor de Discord do fórum?
por Super Games Ontem à(s) 01:27

» Problemas com a caixa de diálogo, ela é pequena e as letras não cabem dentro
por Rukasu777 Qui 16 maio 2024, 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

» 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


fontes, texto, blending e um efeito legal.

2 participantes

Ir para baixo

fontes, texto, blending e um efeito legal. Empty fontes, texto, blending e um efeito legal.

Mensagem por saim Qui 07 Jul 2011, 15:17

Oi, moçada.
Estive lendo esse tópico do gifah e cismei de tentar fazer alguma coisa eu mesmo. Aí, no meio do caminho, a dúvida foi resolvida e eu fiquei com minha meia-engine pra brincar.
Então, até a coisa ser resolvida, eu estava num teste de como eliminar só uma área da surface, fazendo um buraco no lugar certo. Fiz, funcionou, beleza. Comecei a brincar com os blend modes. Queria desenhar um texto que sempre fosse visível, não importa o fundo sobre o qual ele está. Ou seja, um texto que sempre estivesse da cor oposta à cor do fundo.
Ora, eu escrevi postei um tutorial sobre blending! Claro que eu sou capaz disso! Então vamos lá:
1 - muda o blend mode pra desenhar da cor inversa do fundo
2 - desenha o texto
3 - volta o blend mode ao normal
4 - corre pro abraço
Certo? Não. Primeiro, porque os blend modes são fatores multiplicativos, então se eu desenhar o texto em preto (tudo é zero), o texto sairá em preto (porque 0*0=0). Contornei isso desenhando em branco (tudo é 1, e 1*uma_coisa_qualquer=uma_coisa_qualquer).

Show, né? Olha como ficou o código:
Código:
draw_set_blend_mode_ext(bm_inv_dest_color, bm_zero); //muda o blend mode
draw_text_color(view_xview[0]+20, view_yview[0]+20, "teste jasdflfkasdj", $ffffff, $ffffff, $ffffff, $ffffff, 1); //desenha um texto em branco
draw_set_blend_mode(bm_normal); //volta o blend mode ao normal
Testem aí e me digam se funcionou. Porque, na minha máquina, não funcionou. As cores ficaram perfeitamente dentro do esperado, mas o texto se transformou num monte de retângulos.
Se eu elimino os blend modes, o texto aparece lá, em branco, bonitão. Então o que está errado?

PS: Consegui o efeito desejado colocando o texto numa surface e mudando o blend mode pra (bm_inv_dest_color, bm_inv_src_alpha), mas continuo com a dúvida: porque isso não funciona no caso de tentar desenhar o texto diretamente? Acho que cada letra está num retângulo com fundo transparente, mas e aí?


Última edição por saim em Qui 07 Jul 2011, 17:21, editado 1 vez(es)
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : fontes, texto, blending e um efeito legal. Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

fontes, texto, blending e um efeito legal. Empty Re: fontes, texto, blending e um efeito legal.

Mensagem por MatheusReis Qui 07 Jul 2011, 15:37

Aparentemente, quando mudamos a cor de um texto "tingimos" ele com a cor, inclusive as áreas transparentes. Aí quando vamos usar o blend mode o GM parece ignorar as partes transparente, considerando tudo branco com alpha 1, logo toda a área da fonte (o retângulo) é usada para inverter. Eu esbarrei com esse erro enquanto fazia o Math2011. O "Saúde: HP/MAXHP" iria usar a inversão de cores, mas por causa desse erro e por causa do mal-funcionamento de surfaces em certos PCs, resolvi fazer um texto com outline mesmo.
Essa é a minha teoria.

**EDIT**
DESCOBRI!!! Essa combinação de blendmodes ignora o alpha do que vai ser desenhado.
Antes do draw_text, experimente usar draw_text_color(view_xview[0]+20, view_yview[0]+20, "teste jasdflfkasdj", $ffffff, $ffffff, $ffffff, $ffffff, 0);(Valor do alpha no 0)
A inversão continuará, pois a área foi toda tingida de branco, com ou sem alpha. Há!!! sorrindo2
MatheusReis
MatheusReis

Games Ranking : Nota A

Notas recebidas : B-A-A
Data de inscrição : 13/01/2010
Reputação : 31
Número de Mensagens : 1093
Prêmios : fontes, texto, blending e um efeito legal. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Unity
  • Java
  • C#
  • Javascript


http://www.mathaeuz.deviantart.com

Ir para o topo Ir para baixo

fontes, texto, blending e um efeito legal. Empty Re: fontes, texto, blending e um efeito legal.

Mensagem por saim Qui 07 Jul 2011, 16:09

Hm... mais ou menos...
Veja bem, eu postei uma segunda combinação pra surface que não ignora o alpha (senão, ficava tudo preto, no fundo branco, como estava acontecendo com a primeira combinação). Claro que testei essa segunda pro texto também. O resultado foi interessante num fundo branco, mas as partes transparentes ficaram brancas em qualquer fundo.
Mudar o alpha pra zero só vai fazer tudo ser transparente, o que DEVERIA resultar em nada na segunda combinação de blending, mas ainda desenha os retângulos brancos em qualquer fundo.
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : fontes, texto, blending e um efeito legal. Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

fontes, texto, blending e um efeito legal. Empty Re: fontes, texto, blending e um efeito legal.

Mensagem por MatheusReis Qui 07 Jul 2011, 16:54

Testei a segunda combinação. Com ela o alpha define o quanto da inversão será misturado com o branco.

ex: O texto é todo branco.
Temos uma parte de alpha 0 (invisivel) e uma com alpha 1, que delinea o texto.
A area com alpha 0 é desenhada branca, independentemente do fundo, já a area com alpha 1 inverte a cor.
Mudei o alpha 0.5 . Agora o texto é desenhado em alpha 0.5.
A coloração do texto virou uma mistura do branco com a cor invertida.
Logo: Quanto mais próximo de 1 o alpha do desenho, mais pura a inversão. Quanto mais proximo de 0, mais "misturado" com branco fica a inversão.
Veja se consegue o mesmo resultado.

(Meu primeiro post se referia à primeira combinação de blendmodes silent)

EDIT

Esqueci de concluir porque funciona com as surfaces.
Quando a gente desenha o texto normalmente na surface, a área do texto com alpha 0 não é desenhada (duh), preservando a cor e o alpha do fundo. Geralmente usamos draw_clear_alpha(0,0), transformando o fundo em preto com alpha 0. A combinação de preto com alpha zero não é desenhada pela 2ª combinação (ainda não testei por que), dando o resultado desejado(inversão só no texto).
MatheusReis
MatheusReis

Games Ranking : Nota A

Notas recebidas : B-A-A
Data de inscrição : 13/01/2010
Reputação : 31
Número de Mensagens : 1093
Prêmios : fontes, texto, blending e um efeito legal. Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Unity
  • Java
  • C#
  • Javascript


http://www.mathaeuz.deviantart.com

Ir para o topo Ir para baixo

fontes, texto, blending e um efeito legal. Empty Re: fontes, texto, blending e um efeito legal.

Mensagem por saim Qui 07 Jul 2011, 17:20

Sem querer, você matou a charada!
Ao limpar a surface usando draw_clear_alpha($000000, 0), o fundo é PRETO transparente.
Usar um fundo BRANCO transparente - draw_clear_alpha($ffffff, 0), o erro é o mesmo que desenhar o texto diretamente.
Decerto, o fundo transparente da fonte é branco, também.
Nunca imaginaria que algo assim, tão invisível, influenciasse nas cores...

Tópico resolvido!

Edit: usei o "sem querer" porque você ainda não tinha testado o porque de um modo funcionar e o outro não. Se já tinha sido resolvido e eu que não tinha entendido, me desculpe.
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : fontes, texto, blending e um efeito legal. Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

fontes, texto, blending e um efeito legal. Empty Re: fontes, texto, blending e um efeito legal.

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos