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
» Colisões não funcionando
por RastaMaan Hoje à(s) 19:49

» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Hoje à(s) 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

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21


[Resolvido]Como deixar a room preta e branca?

3 participantes

Ir para baixo

[Resolvido]Como deixar a room preta e branca? Empty [Resolvido]Como deixar a room preta e branca?

Mensagem por BugueiXD Seg 13 Abr 2015, 18:03

Eae pessoal , faz um tempo que parei de mexer no gm e comecei com a unity, mas agora estou com um projeto 2d e resolvi voltar pra essa engine que eu tanto amo.

Estou com uma dúvida, por exemplo pra fazer minha room e todos os seus objetos, (menos o objeto do player)ficarem em preto e branco ao apertar ctrl.

Ex: essa é minha room

[Resolvido]Como deixar a room preta e branca? 2q2p8wz

Quando eu apertar ctrl ela fica assim:

[Resolvido]Como deixar a room preta e branca? 2s7i5ns

Mas ao soltar a tecla a room voltasse ao normal

Sei que não ficou tão bom assim por que só tinha um objeto colorido, mas acho que deu pra entender.


Última edição por BugueiXD em Ter 28 Abr 2015, 19:03, editado 1 vez(es)
BugueiXD
BugueiXD

Data de inscrição : 28/10/2014
Reputação : 1
Número de Mensagens : 29
Prêmios : [Resolvido]Como deixar a room preta e branca? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Resolvido]Como deixar a room preta e branca? Empty Re: [Resolvido]Como deixar a room preta e branca?

Mensagem por Markituh Qua 15 Abr 2015, 03:23

De uma forma bem simples, você poderia fazer uma sprite colorida e outra monocromática para cada objeto. Daí, com uma variável global.pretobranco, você controlaria a "preto-e-branquisse" setando ela para true ou false. Em cada objeto você faria uma verificação pra checar o estado dessa variável e trocar a sprite de acordo.

Recomendo que você utilize variáveis nesse caso para controlar a mudança de sprites, daí fica mais fácil pra fazer isso...
Código:
if (andando and pulando) {
    if (global.pretobranco == true) {
        sprite_index = spr_andandopulando_pretobranco
    } else {
        sprite_index = spr_andandopulando
    }
}

... depois de toda a lógica de movimento e definição dessas variáveis tiver sido feita, aí você continua com as outras sprites. Espero que dê tudo certo. Abraços o/
Markituh
Markituh

Games Ranking : Sem avaliações

Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios : [Resolvido]Como deixar a room preta e branca? Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Resolvido]Como deixar a room preta e branca? Empty Re: [Resolvido]Como deixar a room preta e branca?

Mensagem por BugueiXD Qua 15 Abr 2015, 06:32

Quanto as Sprites eu já tinha arrumado um jeito, era parecido com o seu, mas acho que a sua lógica seria mais rápida

O meu problema é com o cenário agora, como fazer ele ficar preto e Branco também?Como se eu saturasse (Acho que assim que se esreve) a tela toda menos o meu player
BugueiXD
BugueiXD

Data de inscrição : 28/10/2014
Reputação : 1
Número de Mensagens : 29
Prêmios : [Resolvido]Como deixar a room preta e branca? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Resolvido]Como deixar a room preta e branca? Empty Re: [Resolvido]Como deixar a room preta e branca?

Mensagem por Zero. Qua 15 Abr 2015, 07:27

Eu acredito que tenha uma forma de fazr isso usando surface e blend modes, eu n conheço muito sobre, irei dar uma pesquisada e deixo algo aqui
Zero.
Zero.

Data de inscrição : 19/08/2010
Reputação : 47
Número de Mensagens : 1300
Prêmios : [Resolvido]Como deixar a room preta e branca? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Resolvido]Como deixar a room preta e branca? Empty Re: [Resolvido]Como deixar a room preta e branca?

Mensagem por Markituh Qua 22 Abr 2015, 21:39

Espero que não tenha desistido ainda (ou será que já encontrou a resposta?). Estive dando uma pesquisada sobre isso e a única forma direta que encontrei foi o uso de shaders, um recurso do GM: Studio (mas que pode ser adicionado às versões anteriores por meio de DLLs). Não tem como fazer usando blend_modes, infelizmente - pelo menos, não no GMS por conta de terem removido a screen_redraw, mas ainda sim seria uma gambiarrazinha - vou te mostrar como fazer isso com shaders!

Os shaders funcionam assim: eles alteram a composição da tela usando usa linguagem de shading como a GLSL (padrão) ou HLSL. A diferença nas duas vai mais de sintaxe mesmo, mas o princípio é igual. Usarei GLSL aqui. Os shaders não são simples alterações de cores ou efeitos, eles podem alterar até a estrutura da imagem com um conhecimento mais avançado. Crie um shader e nomei-o sh_bw (bw - black and white, ou o nome que você quiser). Nele, vai aparecer como se fosse uma janela do editor de Scripts, mas a diferença é que agora tem duas abas: Vertex, e Fragment, que são os dois tipos de manipulação oferecidas - vertex, como o nome sugere, manipula a estrutura, e fragment, a cor.

Como só vamos alterar a cor aqui, usaremos apenas o Fragment. Os códigos que já vem nas duas abas são simplesmente passthroughs, ou seja, eles não fazem nenhuma alteração, só entregam o mesmo valor que receberam. Deixe o vertex como está, apague o que tem em fragment e ponha o seguinte:
Código:
//
// Shader preto e branco
// Peguei da GMC
//
varying vec2 v_vTexcoord;
varying vec4 v_vColour;

void main()
{
    vec4 Color = texture2D( gm_BaseTexture, v_vTexcoord )*v_vColour; // Cor de base
    vec3 Lum = vec3(0.299,0.587,0.114); // Fatores de luminosidade
    float res = dot(Color.xyz, Lum);  // dot - produto das matrizes
    gl_FragColor = vec4( res,res,res, Color.w ); // Cor resultante
}

O codigo é bem simples, e digo isso porque é mesmo. "xyz" poderia ser também "rgb", as duas formas tem o mesmo efeito: retornar os 3 primeiros componentes do vetor. Eu estava tentando ver como fazer para controlar o quanto do preto e branco iria ser aplicado já que você pretendia fazer uma animação, certo? O problema é que isso é mais uma questão matemática, aí complica um pouco Razz Se eu descobrir essa manha, ponho aqui.

Agora vamos desenhar essa joça: no Step do seu objeto control (ou até no player), ponha o seguinte:
Código:
if (global.preto_e_branco) and shader_is_compiled(sh_bw) {
   // Se estiver ativado e o shader estiver disponivel
   shader_set(sh_bw);
} else { shader_reset(); }

Você poderia usar a sequência de shader_set e _reset em qualquer parte do Draw, é o mesmo princípio da surface_set_target e surface_reset_target, só aquela porção de código será afetada. Mas como queremos que afete tudo que é desenhado, fazemos dessa forma. No evento da tecla que você quer, é só alternar essa variável entre true e false. Tcharam! Que delícia de efeito cara! Mas, se não ficou preto e branco, é uma pena :/ Talvez algo errado que tenha feito, ou sua placa de vídeo não suporta shaders corretamente (drivers desatualizados?).

Enfim, eu fiz um exemplozinho aqui (em GMZ): [download]. A alternação está no Step do player, e o obj_tela é o controle do efeito.

Abraços blz
Markituh
Markituh

Games Ranking : Sem avaliações

Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios : [Resolvido]Como deixar a room preta e branca? Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Resolvido]Como deixar a room preta e branca? Empty Re: [Resolvido]Como deixar a room preta e branca?

Mensagem por BugueiXD Dom 26 Abr 2015, 19:40

Cara, simplesmente fantástico, você me ajudou e muito. Créditos Garantidos

No meu jogo o personagem volta no tempo, e para o efeito eu vou usar sua explicação, quem sabe ate coloco ele no CM
BugueiXD
BugueiXD

Data de inscrição : 28/10/2014
Reputação : 1
Número de Mensagens : 29
Prêmios : [Resolvido]Como deixar a room preta e branca? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Resolvido]Como deixar a room preta e branca? Empty Re: [Resolvido]Como deixar a room preta e branca?

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


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