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
» Retorno da GMBR!!!
por theguitarmester Ter 19 Mar 2024, 22:38

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» 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

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


[DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação.

4 participantes

Ir para baixo

[DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação. Empty [DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação.

Mensagem por Adriano Heartless Seg 23 Jul 2012, 11:52

Olá pessoal da GMB O/

Hoje eu to aqui postando esse tópico para falarmos de uma área que eu particulamento estou explorando recentimente no Game maker que é criar um sistema de iluminação.

Dei uma estudada em varios tópicos aqui da galera e comecei a entender um pouco sobre isso. Surface, sistema de alpha nos sprites, etc
mas preciso criar um sistema de iluminação para o meu cenario e está sendo dificil viuu

Bom pra começar só falando que o é 2D o game enton não vou falar nada de iluminação 3D aqui. Vamos para dúvida kkk


A ideia é o seguinte...eu quero criar um um certo ponto da room um lugar escuro e um objeto que fique girando com uma sprite que seria a luz.

Enton eu fiz assim:

Obj_light

step:
Código:
image_angle+=1


Pronto temos um objeto q fica girando...eu coloquei os pontos de origem no centro e está perfeito.

Seu sprite é mais ou menos esse aqui só que é branco:

I[DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação. Textura_light_violeta_clarito_by_mizdecoradoragrafica-d3em443




Bom agora eu preciso criar uma area escura para dar o efeito desejado. Enton eu pensei bom eu poderia usar um draw_rectangle e abaixar um pouco seu alpha, mas acontece que assim não consigo suavizar as bordas =/

Enton eu poderia criar um sprite que seje um quadrado e suavizar as bordas e estica-lo de um ponto a outro?....por enquanto vamos fazer com draw mesmo


Obj_escuridao:

Draw:
Código:
draw_set_alpha(0.8)
draw_set_color(c_black)
draw_rectangle(0,1376,2176,2856,0)


Ok temos um quadro preto em uma parte da room onde vai ficar o objeto girando!!!!





Agora vamos o que eu to tentando fazer não consigo >.<


No sprite da luz tem uma parte branca q é a luz....eu quero que o game maker identifique essa parte branca do sprite da luz e torne ela transparente na area escura. Dando assim o efeito desejado.

Como posso fazer isso?....será q é possivel?



Última edição por Adriano Heartless em Ter 31 Jul 2012, 19:14, editado 1 vez(es)
Adriano Heartless
Adriano Heartless

Data de inscrição : 12/02/2011
Reputação : 2
Número de Mensagens : 95
Prêmios : [DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação. 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

http://ganelse.blogspot.com.br/

Ir para o topo Ir para baixo

[DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação. Empty Duvida

Mensagem por God_of_war425 Seg 23 Jul 2012, 12:01

Não seria mais facil criar uma imagem amarela,diminui o alpha dela para 0.1?ou 0.5,
ela ficaria quaze transparente e daria um bom efeito de iluminação?
God_of_war425
God_of_war425

Data de inscrição : 29/10/2011
Reputação : 4
Número de Mensagens : 510
Prêmios : [DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação. 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

[DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação. Empty Re: [DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação.

Mensagem por Adriano Heartless Ter 31 Jul 2012, 19:12

Consegui fazer.

Não estava conseguindo escurecer somente uma parte da room então resolvi escurecer ela toda e criar varios pontos de iluminação....para isso utilizei um suface em um objeto que chamei de iluminação.

depois criei um sprite de textura de luz e deu certo.

Iluminação:
Create:
Código:
surface=surface_create(room_width,room_height)

step:
Código:
surface_set_target(surface)
surface_get_texture(sp_escuridao); 
draw_clear_alpha(c_black,0.8);

// criando luz no ponto que quer da room
draw_set_blend_mode(bm_subtract);
draw_sprite(sp_luz,0,560,780);
  draw_set_blend_mode(bm_normal);
surface_reset_target()





Bom só que pintou uma outra dúvida que está atrapalhando a finalizar o efeito que eu quero.

No caso existe um background que fica na frente da surface e ele não fica escuro =/

E também esse background acaba ficando na frente de certos objetos que não pode...os Menus por exemplos...porem ele precisa ficar na frente de alguns objetos o personagem principal por exemplo.

Para isso eu liguei a opção "Foreground image" que faz com que o cenario fique na frente de objetos. Mas acabou que ta na frente de tudo até do efeito de iluminação =/

[b]
Adriano Heartless
Adriano Heartless

Data de inscrição : 12/02/2011
Reputação : 2
Número de Mensagens : 95
Prêmios : [DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação. 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

http://ganelse.blogspot.com.br/

Ir para o topo Ir para baixo

[DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação. Empty Re: [DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação.

Mensagem por saim Qua 01 Ago 2012, 09:08

Adriano Heartless escreveu:step:
Os backgrounds são desenhados no draw event. Na verdade, tudo é desenhado no draw event. Seu código não deveria funcionar, mas se está funcionando, o erro deve estar no evento. Tente passar pro draw.

Adriano Heartless escreveu:(...)eu liguei a opção "Foreground image"(...)
Hm..., não sei como resolver isso! É que o draw funciona mais ou menos assim, o game maker sai "carimbando" os desenhos completos pela room, numa ordem definida (sim, com blend modes e toda a complexidade que isso envolve, mas considere que ele simplesmente sai carimbando, por enquanto). Essa ordem é definida pelas depths de cada objeto e pela id deles, no caso da depth ser igual.
Bom, e os backgrounds? Aí que tá: eu não sei. Suponho que sejam desenhados antes de todos os objetos, A MENOS QUE seja um forground. Nesse caso, seria desenhado DEPOIS de todos os objetos (teria que ser parcialmente transparente, só pra dar uns efeitos de parallax). Isso faz com que ele fique por cima de tudo, mesmo. Aí você vem com um problema novo, você quer que a imagem fique por cima de alguns objetos e por trás de outros. Não vejo como fazer isso com backgrounds, o lance é usar um objeto mesmo. Com toda a memória que isso consome (ah, só uma instância não vai fazer um estrago tão grande assim).

Perguntinha:
Adriano Heartless escreveu:
Código:
surface_get_texture(sp_escuridao);
Manual escreveu:surface_get_texture(id) Returns the texture corresponding to the surface. This can be used to draw textured objects with the image of the surface.
Pelo que entendi do manual, o que o surface_get_texture faz é transformar a surface numa textura, pra ser usada em outros locais (como primitives, por exemplo). Você colocou como argumento o nome de uma sprite e não gravou o que foi retornado em variável nenhuma. Me parece que essa linha do seu código poderia ser eliminada sem consequências. Aí, já que está funcionando (mais ou menos), eu pergunto: o que essa função está fazendo? Porque ela está ali?
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 : [DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação. 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

[DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação. Empty Re: [DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação.

Mensagem por PedroX Qua 01 Ago 2012, 16:54

@saim
Na surface dá pra desenhar no Step ou em qualquer evento.

@Topic

Uma das soluções é desenhar o background manualmente. Assim você escolhe a ordem certa. Não tem muitas opções.

Até mais!

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6086
Prêmios : [DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação. Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

[DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação. Empty Re: [DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação.

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