Conectar-se

Esqueci minha senha

Últimos assuntos
» colisão de queda após outra colisão dando problema
Ontem à(s) 20:18 por Willy

» [Duvida] O que aprender
Seg 26 Jun 2017, 15:32 por Markituh

» BUILD FAILED: Cannot find BUILD.xml
Seg 26 Jun 2017, 14:50 por ReisBlender

» Nota de esclarecimento - GMBR voltou!
Sex 23 Jun 2017, 20:33 por Willy

» Regras do Fórum
Sex 23 Jun 2017, 19:02 por GMBR

» Retorno da GMBR!!!
Ter 24 Jan 2017, 15:43 por GMBR

» Jogo Dengue HTML
Seg 30 Nov 2015, 16:17 por guga

» Criando IA Simples para inimigos
Qua 25 Nov 2015, 19:22 por DJDAVYD

» Ordenar variavel em ordem decrescente
Sex 28 Ago 2015, 21:09 por Kodained

» Crio Trilha Sonora para Games!
Qui 27 Ago 2015, 13:50 por Isaias Malafaia

» Problema com Colisão
Qui 27 Ago 2015, 12:30 por The_Game

» Quem quer Uma Engine, e de Quê?
Qui 27 Ago 2015, 09:22 por theguitarmester

» [RESOLV]Como adicionar 2 objetos na mesma posição?
Qua 26 Ago 2015, 11:38 por Bhryenno Kelvyn Carlson

» Sistema de porta!!!
Ter 25 Ago 2015, 21:29 por theguitarmester

» Venda de objetos em Inventário - Multiplicado
Seg 24 Ago 2015, 18:33 por AG Hydra

» Atirar na direção certa
Seg 24 Ago 2015, 09:03 por theguitarmester

» Western Duels
Seg 24 Ago 2015, 07:47 por theguitarmester

» Problemas na compilação android
Dom 23 Ago 2015, 23:43 por Zero.

» Dúvida sobre strings, lendo txt
Sab 22 Ago 2015, 20:31 por Pai véi

» Como estabilizar um som
Sab 22 Ago 2015, 19:03 por Isquilo_Roedor

» Janela Modal
Sab 22 Ago 2015, 09:23 por Pai véi

» Sobre instance Creation Code
Sab 22 Ago 2015, 08:39 por Pai véi

» LudumDare #33
Sex 21 Ago 2015, 21:17 por WellingtonBecker

» Como fazer um temporizador
Sex 21 Ago 2015, 19:02 por Isquilo_Roedor

» GMS sempre salva projeto ao compilar?
Sex 21 Ago 2015, 12:32 por Pai véi

Quem está conectado
13 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 13 Visitantes

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 324 em Ter 05 Out 2010, 13:36

[tutorial] Iluminação

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

[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
Notas recebidas : D
Data de inscrição : 13/05/2012
Número de Mensagens : 275
Insígnias de JAM :

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

Ver perfil do usuário http://www.legioncrafters.tk

Voltar ao Topo Ir em baixo

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!
avatar
vinians

Ranking : Nota B
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :

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

Prêmios
   : 0
   : 2
   : 1

Ver perfil do usuário http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

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
avatar
GabrielXavier

Ranking : Nota A
Notas recebidas : A
Data de inscrição : 25/02/2012
Número de Mensagens : 359
Insígnias de JAM :

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

Prêmios
   : 0
   : 1
   : 1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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.
avatar
theguitarmester

Ranking : Sem avaliações
Notas recebidas : B
Data de inscrição : 28/02/2012
Número de Mensagens : 1908
Insígnias de JAM :

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

Prêmios
   : 2
   : 2
   : 1

Ver perfil do usuário http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

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!
avatar
moisesBR

Data de inscrição : 24/10/2009
Número de Mensagens : 873
Insígnias de JAM :

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

Prêmios
   :
   :
   :

Ver perfil do usuário http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

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
Notas recebidas : D
Data de inscrição : 13/05/2012
Número de Mensagens : 275
Insígnias de JAM :

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

Ver perfil do usuário http://www.legioncrafters.tk

Voltar ao Topo Ir em baixo

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+
avatar
GabrielXavier

Ranking : Nota A
Notas recebidas : A
Data de inscrição : 25/02/2012
Número de Mensagens : 359
Insígnias de JAM :

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

Prêmios
   : 0
   : 1
   : 1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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!

avatar
moisesBR

Data de inscrição : 24/10/2009
Número de Mensagens : 873
Insígnias de JAM :

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

Prêmios
   :
   :
   :

Ver perfil do usuário http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

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.
avatar
GabrielXavier

Ranking : Nota A
Notas recebidas : A
Data de inscrição : 25/02/2012
Número de Mensagens : 359
Insígnias de JAM :

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

Prêmios
   : 0
   : 1
   : 1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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!
avatar
vinians

Ranking : Nota B
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :

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

Prêmios
   : 0
   : 2
   : 1

Ver perfil do usuário http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

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
Notas recebidas : D
Data de inscrição : 13/05/2012
Número de Mensagens : 275
Insígnias de JAM :

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

Ver perfil do usuário http://www.legioncrafters.tk

Voltar ao Topo Ir em baixo

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.
avatar
saim

Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

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

Prêmios
   : 1
   : 0
   : 3

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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:
avatar
cascavelo

Ranking : Nota A
Notas recebidas : A - A - A - A - A -A -C
Data de inscrição : 08/12/2011
Número de Mensagens : 1011
Insígnias de JAM :

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

Prêmios
   : 1
   : 2
   : 1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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...
avatar
felipe.fonsecadepaula

Ranking : Nota C
Data de inscrição : 21/08/2012
Número de Mensagens : 97
Insígnias de JAM :

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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.
avatar
theguitarmester

Ranking : Sem avaliações
Notas recebidas : B
Data de inscrição : 28/02/2012
Número de Mensagens : 1908
Insígnias de JAM :

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

Prêmios
   : 2
   : 2
   : 1

Ver perfil do usuário http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: [tutorial] Iluminação

Mensagem por Conteúdo patrocinado


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