Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
[DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação.
4 participantes
Página 1 de 1
[DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação.
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:
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
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:
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?
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
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)
Duvida
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?
ela ficaria quaze transparente e daria um bom efeito de iluminação?
God_of_war425- Data de inscrição : 29/10/2011
Reputação : 4
Número de Mensagens : 510
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação.
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:
step:
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]
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]
Re: [DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação.
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:step:
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.Adriano Heartless escreveu:(...)eu liguei a opção "Foreground image"(...)
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);
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?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.
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: [DÚVIDA] Tranformando transparência de um sprite em transparência em outro para sistema de iluminação.
@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!
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:
Tópicos semelhantes
» (duvida)como fazer o mascote seguir o player e mudar de sprite quando o player for para o outro lado
» [Resolvido]como fazer que quando o objeto vá para cima ele mude de sprite e quando ele caia ele mude para outro sprite ?
» [DÚVIDA] Transformando um sprite no outro
» duvida com sistema de sprite diferente
» Sistema de ler sprite em disco para GM8
» [Resolvido]como fazer que quando o objeto vá para cima ele mude de sprite e quando ele caia ele mude para outro sprite ?
» [DÚVIDA] Transformando um sprite no outro
» duvida com sistema de sprite diferente
» Sistema de ler sprite em disco para GM8
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos