[tutorial] Iluminação

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Qualidade [tutorial] Iluminação

Mensagem por Esaucm98 em Qui 23 Ago 2012, 01:01

Iluminação 2d por Esaucm98
No caso oque eu vou fazer e seu jogo ficar com uma certa escuridão e com apenas uma luz seja no jogador ou no mouse etc.. depois você pode adicionar luzes aonde quiser tipo postes, lampadas ...
pra entender bem e necessario saber oque é uma surface.

Primeiro criamos uma surface... então faça um objeto chame de por exemplo obj_surface e no create


Código:
//isso deve criar uma surface do tamanho da room
Surf = surface_create(room_width,room_height);

no step:

Código:
surface_set_target(Surf)
//focaliza na surface criada anteriormente

draw_clear_alpha(c_black,0.9);
//limpa o "alpha" ou a transparencia por uma cor preta (c_black) e com uma transparencia muito pequena (0.9) isso fara o //efeito do escuro.

draw_set_blend_mode(bm_subtract)
//seta o "blend mode" para subtrair. veja no final do tutorial

draw_sprite(spr_light,image_index,mouse_x,mouse_y);
//desenha o sprite da luz, lembrando que o blend mode esta subtraindo

draw_set_blend_mode(bm_normal);
//seta o blend mode para normal

surface_reset_target();
//desfocaliza na surface e atualiza já que esta no step



no draw

Código:
draw_surface(Surf,0,0)
//vai desenhar a surface criada nas coordenadas x=0 e y=0 que ficam na parte superior esquerda da room


agora importante coloque o sprite da luz no seu jogo

Spoiler:

A função blend mode e uma "mistura de cores"ela tem varias funções que fazem papeis diferentes, por exemplo bm_subtract subtrai a cor atual, tipo que inverte a cor, se o sprite da nossa iluminação e preto ficou branco etc.. tem tambem outros tipo o bm_add o bm_max, todos influem nas cores, se alguem se interessar e so apertar F1 que tem no manual ou no site da yoyo wikia. no caso ele reage com a função draw_clear_alpha que limpa o "alpha" ou a transparencia pela cor e o alpha especificado, assim sendo ele subtrai o valor da cor do sprite com o alpha que esta setado na região ai ele faz ficar parcialmente transparente a area da luz.

problemas ou duvidas me avise


Download de um exemplo


Última edição por Esaucm98 em Qui 23 Ago 2012, 20:56, editado 4 vez(es)

Esaucm98

Ranking : Nota D
Número de Mensagens : 275
Data de inscrição : 13/05/2012
Notas recebidas : D
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.legioncrafters.tk

Voltar ao Topo Ir em baixo

Qualidade Re: [tutorial] Iluminação

Mensagem por vinians em Qui 23 Ago 2012, 09:37

Excelente tutorial muito útil, e seria bem interessante se explicasse o funcionamento do draw_set_blend_mode(bm_subtract) isso seria muito importante para entender todo o processo pois ele é a chave de tudo.
Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Qualidade Re: [tutorial] Iluminação

Mensagem por GabrielXavier em Qui 23 Ago 2012, 11:06

Cara esse tuto é interessante mas nao consegui conclui-lo, ta muito confuso e tem muitos erros explica melhor oque cada funcao faz e o lugar dde coloca os codigos e talz , aguardo a atualizacao pois to muito interessado no tuto.Concerta ai cara vale apena flws

GabrielXavier

Ranking : Nota A
Número de Mensagens : 359
Data de inscrição : 25/02/2012
Notas recebidas : A
Reputação : 15
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 1

Voltar ao Topo Ir em baixo

Qualidade Re: [tutorial] Iluminação

Mensagem por theguitarmester em Qui 23 Ago 2012, 11:46

Seu code está errado, Nestas Partes:
Código:
draw_sprite(mouse_x,mouse_y,obj_light);
Seria assim:
Código:
draw_sprite(spr_luz,-1,mouse_x,mouse_y);

e aqui:
Código:
Surf = surface_create(room_widith,room_height);
Seria:
Código:
Surf = surface_create(room_width,room_height);
______________________________________________

Gostei Muito do Efeito, Já procurei isto a algum Tempo, mas achei estranho uma coisa:
Coloquei no Meu Jogo 'EscoraBall' para ver como ficava, funcionou legal,mas só que a Bolinha ficou aparecendo no Escuro, e em Outra fase(que existia Portas e Chavez) ficou aparecendo mais coisas:
Spoiler:
Pelo que Parece, as Cores Quentes não Ficaram Escuras, Como Resolver Isto?


Editado logo após ver que eu estava errado.
O Problema era que o Depth do Surface era Maior de que aqueles objetos!

Vou usar Este Efeito no EscoraBall Versão 2.0, Obrigado.

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Qualidade Re: [tutorial] Iluminação

Mensagem por moisesBR em Qui 23 Ago 2012, 14:45

Eu consegui!
Erros acontecem mesmo quebrei a cuca um pouco e só adaptei! Ó só:


Pra quem ainda topa com esse tipos de erros, eis aqui minha forma de acha-los e corrigir= tradução:
tradução:
___________________________________________
ERROR in----------------------------------------=erro em
action number 1---------------------------------=na tentativa
of Step Event-----------------------------------=do evento
for object obj_surface :--------------------------=do objeto

Error in code at line 10:--------------------------=erro do code na linha 10
draw_sprite(spr_lighiiiiit,1,mouse_x,mouse_y)-=esse é o code
^--------------------------------------=ponto exato
at position 14: Unknown variable spr_lighiiiiit------=não encontrado a variável ou outra coisa.
Ou prefere assim?:
___________________________________________
ERRO em
na ação número 1
do Evento Steep
para o objecto obj_surface :

Error no code na linha 10:
draw_sprite(spr_lighiiiiit,1,mouse_x,mouse_y)
^
na posição 14: não encontrado variável spr_lighiiiiit
Nesse exemplo de erro proposital,
o resultado foi:
o erro ocorreu no steep do objeto com nome obj_surface e ainda mostrando
a linha e posição além do próprio code com um ^ mostrando onde foi!
resumindo: se deu unknow então é por que não achou ou não existe!
se deu spectate quer dizer que falta algo no proprio code!

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Qualidade Re: [tutorial] Iluminação

Mensagem por Esaucm98 em Qui 23 Ago 2012, 19:58


Cara esse tuto é interessante mas nao consegui conclui-lo, ta muito confuso e tem muitos erros explica melhor oque cada funcao faz e o lugar dde coloca os codigos e talz , aguardo a atualizacao pois to muito interessado no tuto.Concerta ai cara vale apena flws

Não entendi eu coloquei onde e pra colocar cada coisa, já corrigi os pequenos erros que tinham, se puder especificar melhor qual a parte que esta confusa eu posso melhorar vlw.


Seu code está errado, Nestas Partes:
CODE:
draw_sprite(mouse_x,mouse_y,obj_light);
Seria assim:
CODE:
draw_sprite(spr_luz,-1,mouse_x,mouse_y);


e aqui:
CODE:
Surf = surface_create(room_widith,room_height);
Seria:
CODE:
Surf = surface_create(room_width,room_he

É verdade, foi mal fiz o tutorial com um pouco de pressa porque tava meio tarde, mas ja corrigi, desculpe.

Excelente tutorial muito útil, e seria bem interessante se explicasse o funcionamento do draw_set_blend_mode(bm_subtract) isso seria muito importante para entender todo o processo pois ele é a chave de tudo.
Flws!

Vlw fico feliz que tenha gostado, a função blend mode repare que eu dei uma pequena explicação agora, achei até meio superficial mas e pq eu nao sei explicar direito, e algo que eu aprendi por experiencia propria tentando então eu particulamente acho dificil de explicar.

Esaucm98

Ranking : Nota D
Número de Mensagens : 275
Data de inscrição : 13/05/2012
Notas recebidas : D
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.legioncrafters.tk

Voltar ao Topo Ir em baixo

Qualidade Re: [tutorial] Iluminação

Mensagem por GabrielXavier em Qui 23 Ago 2012, 20:23

Consegui concluir o tutorial,
mas achei um erro Esaucm98, (não sei se é um erro mas axo que sim, se não desculpe-me.)
"então faça um objeto chame de por exemplo obj_surface"

"draw_sprite(obj_light,image_index,mouse_x,mouse_y);"

Bom so consegui concluir o tutorial quando coloquei o mesmo nome nos dois lugares destacados em vermelhor.

Coloque algo assim:
"então faça um objeto chame de obj_surface" sem o por exemplo.

e no codigo coloque:
"draw_sprite(obj_surface,image_index,mouse_x,mouse_y);"

Gostei muito do tutorial Esaucm98, parabens
continue assim!
Flws cara Te+

GabrielXavier

Ranking : Nota A
Número de Mensagens : 359
Data de inscrição : 25/02/2012
Notas recebidas : A
Reputação : 15
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 1

Voltar ao Topo Ir em baixo

Qualidade Re: [tutorial] Iluminação

Mensagem por moisesBR em Qui 23 Ago 2012, 20:28

Cara, coloca a gmk exemplo(comentados) pra quem não consegui! assim eles aprendem!

sem esquecer de usar o info para dizer pra que serve, o nome do projeto que lembre o que é... e etc!
exemplo de nome: "Tutorial Iluminação (por Esaucm98).gmk"

Não vou dizer: "espero ter ajudado", pois é pensando nisso que postei agora!
Fuiz!


moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Qualidade Re: [tutorial] Iluminação

Mensagem por GabrielXavier em Qui 23 Ago 2012, 20:41

Tô com o moisesBR o gmk seria um otimo complemento para o tutorial.

GabrielXavier

Ranking : Nota A
Número de Mensagens : 359
Data de inscrição : 25/02/2012
Notas recebidas : A
Reputação : 15
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 1

Voltar ao Topo Ir em baixo

Qualidade Re: [tutorial] Iluminação

Mensagem por vinians em Qui 23 Ago 2012, 20:43

moisesBR escreveu:

Não vou dizer: "espero ter ajudado", pois é pensando nisso que postei agora!
Fuiz!

Sempre vi o pessoal dizendo isso e nunca concordei, pois se está postando é claro que "espera que tenha ajudado". Foi ótimo que alguem notou isso tambem!!!!
(esse post foi meio inútil mas não resisti)
Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Qualidade Re: [tutorial] Iluminação

Mensagem por Esaucm98 em Qui 23 Ago 2012, 20:55

certo então, coloquei ai um exemplo, quem tiver tendo dificuldade e so baixar, mas acho que se seguir o tutorial direitinho fica funcional sim.
quem quiser so baixa...

Esaucm98

Ranking : Nota D
Número de Mensagens : 275
Data de inscrição : 13/05/2012
Notas recebidas : D
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.legioncrafters.tk

Voltar ao Topo Ir em baixo

Qualidade Re: [tutorial] Iluminação

Mensagem por saim em Sex 24 Ago 2012, 09:22

Esaucm98 escreveu:
Excelente tutorial muito útil, e seria bem interessante se explicasse o funcionamento do draw_set_blend_mode(bm_subtract) isso seria muito importante para entender todo o processo pois ele é a chave de tudo.
Flws!

Vlw fico feliz que tenha gostado, a função blend mode repare que eu dei uma pequena explicação agora, achei até meio superficial mas e pq eu nao sei explicar direito, e algo que eu aprendi por experiencia propria tentando então eu particulamente acho dificil de explicar.
Eu traduzi um tutorial sobre blend modes. Se quiser dar uma olhada, tem um link na assinatura.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Qualidade Re: [tutorial] Iluminação

Mensagem por cascavelo em Sex 24 Ago 2012, 22:44

Veio em boa hora, eu não estava conseguindo um sitema de iluminação satisfatório pro meu novo jogo pra celular, adaptei o seu código e ficou bem melhor que antes.

O jogo com a iluminação de tutorial:

cascavelo

Ranking : Nota A
Número de Mensagens : 1011
Idade : 46
Data de inscrição : 08/12/2011
Notas recebidas : A - A - A - A - A -A -C
Reputação : 71
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 1

Voltar ao Topo Ir em baixo

Qualidade Re: [tutorial] Iluminação

Mensagem por felipe.fonsecadepaula em Seg 17 Dez 2012, 13:09

muito bom o tutorial..do jeito q esta ai ja esta funcionando legal...agora so preciso de adaptar para o meu game...

obrigadao pela ajuda ai com esse tuto...

felipe.fonsecadepaula

Ranking : Nota C
Número de Mensagens : 97
Idade : 30
Data de inscrição : 21/08/2012
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Qualidade Re: [tutorial] Iluminação

Mensagem por theguitarmester em Ter 23 Jun 2015, 10:56

Este tutorial já deveria esta aprovado a muito tempo!

Muito bom, sempre uso quando tenho que fazer alguma coisa relacionada a iluminação, ou aponto em tópicos com dúvidas sobre o mesmo.


Simples, explicado, eficiente e muito útil!


Movido para Tutoriais Aprovados.

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Qualidade Re: [tutorial] Iluminação

Mensagem por Conteúdo patrocinado Hoje à(s) 14:34


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum