Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

[RESOLVIDO] Mudando a cor do sprite para branco!!!??

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
AdrianoPpaula
Membro
Membro
Reações: 0
Mensagens: 59
Localização: Quissamã RJ

Contato:

[RESOLVIDO] Mudando a cor do sprite para branco!!!??

Mensagem por AdrianoPpaula » Sex Jun 24, 2016 5:12 am

Fala galerinha linda!!! Então minha dúvida é bem simples mas que infelizmente não consegui resolver, estava pesquisando aqui no fórum uma maneira de trocar a cor de um sprite quando me deparei com a função image_blend. Descobri que dava para utilizar essa função tando colocando por exemplo  image_blend= c_red ou image_blend= make_colour_rgb(255,0,0). O problema que na hora d mudar a cor do sprite para branco não consigo. pesquisei mais um pouco e descobri que se colocar por exemplo image_blend= c_white, o sprite não fica branco e sim com sua cor original. também tentei usar de outra maneira mas sem resultados, alguém sabe como posso usar a cor branco nesse caso?
Editado pela última vez por AdrianoPpaula em Seg Jun 27, 2016 1:15 pm, em um total de 2 vezes.
Imagem

Avatar do usuário
Rodrigo Santiago
Colaborador
Colaborador
Reações: 0
Mensagens: 273

Re: Mudando a cor do sprite para branco!!!??

Mensagem por Rodrigo Santiago » Sex Jun 24, 2016 8:43 am

Como funciona :

Esse tipo de mudança na sprite é inversamente subtrativa ( what ? )
É o seguinte , imagine a cor de blending "255,0,0" (vermelho) , sendo aplicado em um pixel "150,150,30".
Para aplicar a cor, inverte-se a cor vermelha "255,0,0" vira "0,255,255" , agora esse resultado é subtraído de "150,150,30" , que se transforma em "150,0,0" ,(0 é o minimo) . Isso resulta no efeito de vermelho. Veja, que como invertemos, quanto mas escura for a cor , mas escuro fica o resultado.

Segue aqui alguns exemplos :
"0,0,0" -> preto no "150,150,30" -> "0,0,0" invertido fica "255,255,255" "150,150,30" - "255,255,255" = "0,0,0"  - fica tudo preto !!!

"255,255,255" -> branco no "150,150,30" -> "255,255,255" invertido fica "0,0,0"  "150,150,30"-"0,0,0" = "150,150,30" é por isso q c_white e o blending padrão, pos não altera


*Obs .: Espero que tenha entendido

Como Resolver

VocÊ deve usar um blend mode aditivo, infelismente isso é bem complicado, pra facilitar vamos nos aproveitar do fog ( nevoa) em 3d , ja q ele pode mudar a cor das sprites.
No Create

Código: Selecionar todos

cor = c_red; // use essa variavel como se fosse image_blend
No Draw

Código: Selecionar todos

draw_self();
draw_set_alpha(0.5);
d3d_set_fog(true, cor, 0, 1); //Use a cor aqui, obs , nao altere image blend, use uma variavel
draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,0.5); //Aki 0.5 fica 50% com a cor , se for 1 fica 100%
d3d_set_fog(false, 0,0,0);
draw_set_alpha(1);

Avatar do usuário
AdrianoPpaula
Membro
Membro
Reações: 0
Mensagens: 59
Localização: Quissamã RJ

Contato:

Re: [RESOLVIDO] Mudando a cor do sprite para branco!!!??

Mensagem por AdrianoPpaula » Seg Jun 27, 2016 1:16 pm

funcionou perfeitamente!!!!! E agora entendi o esquema de subtração de cores vlw mesmo lol
Imagem

Trancado

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitante