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
» player não consegue andar
por 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


[Tuto] Como usar LightEngine

+4
JoaoVanBlizzard
Jiraya
Gabreel
Lukbebalduke
8 participantes

Ir para baixo

[Tuto] Como usar LightEngine Empty [Tuto] Como usar LightEngine

Mensagem por Lukbebalduke Ter 14 Jan 2014, 15:46

Light Engine



Aprenda a usar a melhor engine de Iluminação do Game Maker !

Vou procurar ensinar a como usar uma ótima engine de iluminação no Game Maker , você que sempre teve problemas em fazer sistema de Iluminação isso vai te resolver muita coisa ! Pra deixar bem claro, você não vai montar uma mega engine de luz, vou te ensinar a usa-la !

Antes de mais nada essa engine não foi feita por mim, foi feita pelo BlinderXpinguin. Então antes de começar eu vou mostrar um print pra vocês verem o nível da parada

[Tuto] Como usar LightEngine 1eay
[Tuto] Como usar LightEngine Lri2

Passo 1: Importar os Scripts

Como já disse, vamos aprender a usar a engine e não montá-la do 0, então vocês vão baixar esses scripts

Código:
http://www.masterxy.bplaced.net/download.php

e importar como na imagem

[Tuto] Como usar LightEngine 1Z6FihP

E o deve ficar assim

[Tuto] Como usar LightEngine JWmT5tp

Passo 2: Inicializando a engine de luz

Vamos lá, crie o obj_controle e colocar no create  Event Create 

Código:

lsys_init(1);
alpha = 0.8;

Vamos entender esse código , o lsys_init() serve para iniciar o sistema de luz , o numero dentro dele é a qualidade da iluminação , você pode botar de 0 a 1, quanto mais alto maior a qualidade , nesse caso, qualidade máxima. Já o alpha é uma variável que iremos usar depois, ele vai servir para definir o nível de claridade do ambiente, ela é importante porque nos permite mudar a claridade no meio do jogo, podemos fazer sistemas de dia e noite com isso.

Agora no end_step  Event Step  do nosso obj_controle

Código:
lsys_update(alpha);

Ai entra a nossa var alpha, isso serve pra atualizar o nível da claridade, no caso o lsys_update() nos devemos botar o alpha de 0 a 1 ali, sendo 0 o mais claro e 1 o mais escuro.

Agora no draw  Event Draw  do nosso obj_controle

Código:
lsys_draw();

Isso serve para desenhar as surfeces na tela, pois é assim que funciona a iluminação da engine, por surfaces. Não precisa botar nada ai.

E por fim no room_end  Event Other  ou game_end  Event Other  ou em qualquer outra ocasião que você for usar isso (não vejo muito utilidade fora essas) do obj_controle coloque

Código:
lsys_free();

Isso serve pra limpar tudo ! As luzes, as surfaces e os casters. Você simplesmente exclui tudo feito com essa engine.

Passo 3: Adicionando pontos de Luz

Agora vamos adicionar os nossos pontos de luz, a tocha, a lanterna, o Sol etc.. Oque raios você for usar. Vamos criar agora o obj_sol_feliz , no create  Event Create 

Código:
pl = lsys_light_add(x, y, 350, c_yellow);

Vamos lá, a funciona da seguinte maneira lsys_light_add(x, y, raio da luz, cor) , isso ai vai definir um novo ponto de luz e retornar o ID dele , nesse caso salvamos o ID no pl.

Agora no destroy  Event Destroy  do obj_sol_feliz bote

Código:
lsys_light_delete(pl);

Quando o nosso sol morrer daqui a muitos anos, a luz tem que acabar, o lsys_light_delete( id do ponto de luz ) serve pra destruir o ponto de luz, como o nosso ponto de luz é o pl , vamos destruir o pl quando o sol morrer.

Passo 4: Shadow casters

Os shadow casters (Não sei como traduzir isso de uma maneira descente) é o que vai impedir a luz de passar , por exemplo, vamos definir um shadow caster para o nosso obj_parede, porque a luz não vai passar pela nossa parede. E não vamos definir shadow caster para HUD , porque a nossa HUD vai deixa a luz passar.

Então no create  Event Create do obj_parade vamos botar

Código:
sc = lsys_caster_add(x, y);
lsys_caster_add_point(sc, 0, 0);
lsys_caster_add_point(sc, sprite_width, 0);
lsys_caster_add_point(sc, sprite_width, sprite_height);
lsys_caster_add_point(sc, 0, sprite_height);

A primeira função lsys_caster_add(x, y) adiciona um shadow caster e retorna o seu ID, que guardamos como sc. Já o lsys_caster_add_point( ID, x, y) serve para adicionar um vértice ao nosso shadow caster, esses quatro vértices vão fechar o quadrado da nossa parede. Como você vê nessa imagem

[Tuto] Como usar LightEngine Kxxz

Lembrando que como usamos sprite_width e sprite_height só vai funcionar se a origin estiver em 0 , 0.

No  destroy Event Destroy do obj_parede agora

Código:
lsys_caster_delete(sc);

O lsys_caster_delete( ID ) serve para deletar um shadow caster , até porque quando nos derrubamos uma parede na vida real, a luz volta a passar por ali, não fica um Void no lugar da parede '-'

Acabamos de finalizar o básico , o sol já emite luz e a parede já esta "impermeável" a luz. Mas e se o nosso Sol feliz andasse ? Afinal ele não é uma estrela comum , ele é um Sol feliz ! Coloque ai para o seu Sol feliz andar no WASD , nas setas , no mouse , onde você quiser. Agora vamos aprender a fazer a luz acompanhar o nosso Sol feliz ! O seu game deve estar assim:

[Tuto] Como usar LightEngine C0rMOxb

Passo 5: Alterando propriedades do ponto de luz !

Vamos lembrar sempre, o obj_sol_feliz não é o ponto de luz, o ponto de luz é o pl , que está junto com o obj_sol_feliz , mas se o objeto andar, o pl não vai seguir. Então vamos fazer o ponto de luz acompanhar o sol

No step  Event Step  coloque

Código:
lsys_light_set_position(pl, x, y);

O lsys_light_set_position( ID , x , y) serve para alterar a posição do ponto de luz. Nesse caso, ele vai estar sempre no mesmo lugar do sol feliz !

Mas o sol feliz começou a fica triste... (porque nesse tutorial o sol anda e tem sentimentos , não questione ¬¬) e quando o sol feliz fica triste ele vai perdendo seu brilho e sua cor amarela. Para mudar o raio da luz e fazer nosso sol brilhar menos vamos fazer assim no evento que deixa o sol triste

Código:
lsys_light_set_radius(pl, 200);

A função lsys_light_set_radius( ID , raio ) Altera o raio do ponto de luz.

Agora vamos tirar esse amarelo e botar uma coisa verde, porque estrelas tristes brilham verde oras ! Então coloque no evento que deixa o nosso sol triste

Código:
lsys_light_set_color(pl, c_lime);

O lsys_light_set_color( ID , cor ) muda a cor do ponto de luz.

Ok , agora que nosso sol já ta triste, brilha pouco e ta verde vamos deixa-lo de lado, somos maus , vamos supor que você queria criar uma lanterna , as lanternas não emitem uma aura de luz como as magias do Gandalf , elas soltam um feixe de luz. O mais incrível dessa engine é você pode alterar o formato da luz ! Para isso crie uma sprite com o formato da luz, tudo o que vai ser branco representa a luz, lembre-se de fazer um gradient de branco para transparente, pois isso vai fazer a luz ir ficando fraquinha, assim como na vida real. Para fazer a lanterna usarei essa sprite para formar a luz

[Tuto] Como usar LightEngine 10cy2j0dt2jrkyyfg

Baixe ela ai para prosseguir com o tutorial. Agora crie um ponto de luz para a lanterna e tudo aquilo que fizemos com o sol lá no começo. Agora coloque no create  Event Create da lanterna

Código:
lsys_light_set_sprite( pl, spr_feixe_luz);

Lembrando que se o ID e o nome da sprite forem diferentes você precisa mudar. A função lsys_light_set_sprite( ID, sprite) faz com que o ponto de luz vire a sprite que você indicou, nesse caso o ponto de luz da nossa lanterna vai virar aquele feixe que apareceu logo a cima.

Certo, agora deixe-me mostrar como essa engine é foda, vamos fazer o feixe mirar para o mouse, para mostrar como mesmo com a sprite de feixe de luz ele ainda funciona super bem. Coloque no step Event Step 

Código:
direction = point_direction( x, y, mouse_x, mouse_y);
lsys_light_set_rotation( pl, direction);
image_angle = direction;

Certo, só vou explicar a função da light engine, o resto eu espero que você já saiba o que é. A função lsys_light_set_rotation( ID, angle) muda o angulo da sprite que virou luz, nesse caso, o feixe vai sempre apontar para o mouse.

Espero que tenham curtido esse tutorial, aqui fica o link da engine

Código:
http://www.mediafire.com/download/2vaa9kf55bmy5ae/TutoLightEngine.zip
Ou
Código:
https://mega.co.nz/#!bR0SwAJJ!bbGrPAa8jbWnfLsPK6DcTwuHEt5rg0s8mCBcbAr5Yn4

Se você também estive interessado na engine original, e não na modificada para este tuto:
Código:
http://www.masterxy.bplaced.net/download.php

Controles
Sol: use o mouse para mover o sol, e aperte Q para deixa-lo triste ou feliz.
Lanterna: AWDS para mover a lanterna e mouse para mirar
Aperte espaço para trocar entre o sol e a lanterna.

Qualquer duvida ou correção deixe ai nos comentários. Sei que ficou um pouco longo mais vale a pena ler , a engine é muito legal mesmo. Mais uma vez obrigado ao BlinderXpinguin por nos disponibilizar esta engine !


Última edição por Lukbebalduke em Ter 06 Jan 2015, 19:38, editado 4 vez(es)
Lukbebalduke
Lukbebalduke

Games Ranking : Nota B

Notas recebidas : B - B - A - B
Data de inscrição : 06/07/2011
Reputação : 30
Número de Mensagens : 765
Prêmios : [Tuto] Como usar LightEngine Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 2

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

Ir para o topo Ir para baixo

[Tuto] Como usar LightEngine Empty Re: [Tuto] Como usar LightEngine

Mensagem por Gabreel Qua 15 Jan 2014, 01:51

Ótimo tutorial pinpi, consigo imaginar milhares de aplicações! Smile
Gabreel
Gabreel

Data de inscrição : 02/10/2009
Reputação : 52
Número de Mensagens : 2232
Prêmios : [Tuto] Como usar LightEngine 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
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • Outros


Ir para o topo Ir para baixo

[Tuto] Como usar LightEngine Empty Re: [Tuto] Como usar LightEngine

Mensagem por Jiraya Qua 15 Jan 2014, 05:48

muito bom.

bati o olho e ja aprendi a usar algumas coisas q dessa engine.

parabens pelo tuto pinpi

+ rep
Jiraya
Jiraya

Games Ranking : Nota A

Notas recebidas : A+A
Data de inscrição : 20/03/2010
Reputação : 108
Número de Mensagens : 1134
Prêmios : [Tuto] Como usar LightEngine Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 1

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

https://www.facebook.com/seito.washiro.7

Ir para o topo Ir para baixo

[Tuto] Como usar LightEngine Empty Re: [Tuto] Como usar LightEngine

Mensagem por JoaoVanBlizzard Qua 15 Jan 2014, 11:59

Uau, essa era justamente a peça que faltava na minha construção, a tempo que eu procurava efeitos assim para meus jogos, que era o principal motivo dos meus jogos demorarem tanto para serem finalizados, mas com esses scripts, eu posso conseguir ajustar a luminosidade de algumas cenas dos meus jogos, diminuindo a quantidade de vezes que preciso ficar recriando cenas para se ajustar aos ambientes dos meus jogos. baixado e aprovado. belo tutorial pimpi, aprovado.
JoaoVanBlizzard
JoaoVanBlizzard

Games Ranking : Nota B

Notas recebidas : B+B
Data de inscrição : 04/03/2012
Reputação : 144
Número de Mensagens : 1926
Prêmios : [Tuto] Como usar LightEngine Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 2 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Unity


Ir para o topo Ir para baixo

[Tuto] Como usar LightEngine Empty Re: [Tuto] Como usar LightEngine

Mensagem por DonutScore Qua 15 Jan 2014, 12:02

Era tudo que eu precisava, agora quero ver como vai ficar em um jogo feito em pixel art
DonutScore
DonutScore

Data de inscrição : 18/12/2013
Reputação : 6
Número de Mensagens : 177
Prêmios : [Tuto] Como usar LightEngine 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://donutscore.com

Ir para o topo Ir para baixo

[Tuto] Como usar LightEngine Empty Re: [Tuto] Como usar LightEngine

Mensagem por Lukbebalduke Qua 15 Jan 2014, 21:38

Opa ! Obrigado pessoal, trouxe essa engine exatamente porque sabia que ela tem potencial muito alto e o pessoal do fórum saberia aproveita-la, o próprio Cascavelo junto com o molinware, haviam usado ela em um game e ficou show !

Também coloquei a engine original nos downloads , que é aquela engine dos prints iniciais , caso alguém queira dar uma olhada.
Lukbebalduke
Lukbebalduke

Games Ranking : Nota B

Notas recebidas : B - B - A - B
Data de inscrição : 06/07/2011
Reputação : 30
Número de Mensagens : 765
Prêmios : [Tuto] Como usar LightEngine Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 2

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

Ir para o topo Ir para baixo

[Tuto] Como usar LightEngine Empty Re: [Tuto] Como usar LightEngine

Mensagem por joaox200 Qui 25 Dez 2014, 21:00

Fala ai fera blz?
Poderia me dar uma "Luz" aqui?

Eu e uns colegas estamos criando um game plataforma.
Eu gostaria que meu personagem segura-se uma lanterna e dessa lanterna parti-se a luz.

E caso não seja pedir demais, gostaria e o braço dele se movimentaçe junto quando a gente mexe o cursor.

Desde já, agradeço. Cool
joaox200
joaox200

Data de inscrição : 23/12/2014
Reputação : 0
Número de Mensagens : 2
Prêmios : [Tuto] Como usar LightEngine 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

[Tuto] Como usar LightEngine Empty Re: [Tuto] Como usar LightEngine

Mensagem por AlexBosquin Seg 12 Jan 2015, 14:23

Eu gostei demais dessa função Luk como sempre vc é um cara foda s2. Então como testei e não funcionou para Game Maker Studio eu encontrei na net a versão compatível com o Game Maker Studio, se puder adicioná-lo ao tutorial acho que ajudaria a galera ;D

Código:
http://www61.zippyshare.com/v/87050067/file.html
AlexBosquin
AlexBosquin

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 10/07/2012
Reputação : 35
Número de Mensagens : 621
Prêmios : [Tuto] Como usar LightEngine 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

http://www.craftstudios.com.br

Ir para o topo Ir para baixo

[Tuto] Como usar LightEngine Empty Re: [Tuto] Como usar LightEngine

Mensagem por ANDREASCRUST Ter 31 Mar 2015, 13:35

O MEU APARECEU O SEGUINTE ERRO:


___________________________________________
############################################################################################
FATAL ERROR in
action number 1
of Create Event
for object obj_parede:

Push :: Execution Error - Variable Get -5._lsys_casters(100001, -2147483648)
at gml_Script_lsys_caster_add (line 6) - for (i = 0; i < global._lsys_casters; i += 1)
############################################################################################
--------------------------------------------------------------------------------------------
stack frame is
gml_Script_lsys_caster_add (line 6)
called from - gml_Object_obj_parede_CreateEvent_1 (line 3) - sc = lsys_caster_add(x, y);
ANDREASCRUST
ANDREASCRUST

Data de inscrição : 30/04/2012
Reputação : 1
Número de Mensagens : 49
Prêmios : [Tuto] Como usar LightEngine 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

[Tuto] Como usar LightEngine Empty Re: [Tuto] Como usar LightEngine

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

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