Conectar-se
Quem está conectado
20 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 20 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Sem avaliações
Data de inscrição : 21/11/2010
Número de Mensagens : 775
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 25

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

[tutorial] Criando Água ao estilo Minecraft

em Seg 06 Fev 2012, 17:37
Reputação da mensagem: 100% (1 votos)
Criando Água ao estilo Minecraft
Estilosa


Detalhes
Criador: Tedi
Idéia Base: Minecraft e Terraria
Versão do GM: GM Lite e Pro
Dificuldade: Depende
Introdução
O que vai ser ensinado:
A idéia aqui é fazer um sistema de água como a do Minecraft, na qual a água escorre por objetos sólidos, mas quando não há nada a baixo, ou aos lados, ela cai, o sistema funcionou perfeitamente aqui no PC, só ocorreu um pequeno lag quando muitos objetos água se criaram.... {OPS, LAG CORRIGIDO}

Imagens:




O que realmente acontece aqui:
A idéia é:
-Checar se existe algum objeto abaixo do objeto água
Se não existir:
-Criar um objeto abaixo
Se Existir:
-Checar se existe algum objeto ao lado esquerdo
Se não existir
-Criar água ao lado esquerdo

-Checar se existe algum objeto ao lado direito
Se não existir
-Criar água ao lado direito

Let it rip:
Bem começamos criando as sprites:
Sprites
Crie 2 sprites:
spr_solido

spr_agua


Pronto, isso é bem simples...

Objetos
Crie 2 objetos
obj_solido

obj_agua




No obj_solido, apenas marque-o como Solid e coloque a sprite spr_solido



No obj_agua, coloque a sprite spr_agua
E no Create Event coloque o seguinte código:
(o codigo esta um pouco grande, mas é necessário para não ocorrer lag)

Código:
cima_solido=place_meeting(x,y-1,ob_solido)
baixo_solido=place_meeting(x,y+1,ob_solido)
esquerda_solido=place_meeting(x-1,y,ob_solido)
direita_solido=place_meeting(x+1,y,ob_solido)

cima_agua=place_meeting(x,y-1,ob_agua)
baixo_agua=place_meeting(x,y+1,ob_agua)
esquerda_agua=place_meeting(x-1,y,ob_agua)
direita_agua=place_meeting(x+1,y,ob_agua)

Explicação:
Aqui nós criamos 8 variáveis para nos auxiliar mais tarde.
place_meeting: Retorna True(verdadeiro) se houver um objeto na posição x e y indicada, ou False se não houver

Bem, agora vamos fazer a mágica da coisa, vamos fazer o script para checar espaços livres e criar objetos, mas, não será possível colocar no create event, pois:
O create event executa seus códigos ao iniciar o jogo, e se colocarmos nele, o jogo vai travar, pois estará criando e criando e criando objetos sem parar...

Por isso vamos fazer isso em um evento alarm (até fará o efeito parecido com o próprio minecraft, pois ele demora um pouco para criar a água (principalmente a lava)

Então, no create event ainda, coloque:

Código:
alarm[0]+=room_speed

Explicação:
Alarm[0] - chama o evento alarm 0
Room_speed - é equivalente a 1 segundo (padrão são 30 frames)

Agora vamos a mágica da coisa, no evento Alarm 0 coloque:

Código:
if baixo_solido=false and baixo_agua=false    //Se não houver nenhum objeto abaixo
{
instance_create(x,y+32,ob_agua)   //Cria um objeto agua
}
else
{
if esquerda_solido=false and esquerda_agua=false   //Se não houver nenhum objeto a esquerda
{
instance_create(x-32,y,ob_agua)    //Cria um objeto agua
}
if direita_solido=false and direita_agua=false   //Se não houver nenhum objeto a direita
{
instance_create(x+32,y,ob_agua)    //Cria um objeto agua
}
}

Explicação no próprio código

Pronto, agora é só mapear sua room e ver o resultado =D


VOCEIS: PERAAEEEEEE, isso ta lagado pra caramba!!!!
TEDI: Claro (é porque eu sou um troll mesmo) É porque a agua, se sair da room, continua a se criar, lagando tudo ;D

Pra isso vc só precisa fazer:


Pronto, agora sim, mapeie a room, de os créditos a mim kkk
DUVIDAS, COMO SEMPRE, POSTE AQUI OK?!
Flws flw
Abre o spoiler
SE VC QUER A AGUA MAIS REALISTA, CLICA AQUI!:

Bem, depois de alguns minutos tentando, alguns 5 minutinhos, terminei um efeitosinho pra agua...

EDiçOes nos objetos:
-Na sprite da Agua, adicione mais 2 subimages, pra fazer a agua caindo, desta forma:

(image 0 - agua normal
image 1 - agua caindo pra direita
image 2 - agua caindo pra esquerda)

-No objeto agua, acrecente o seguinte codigo ao create:
Código:
image_speed=0
descida=false
Aqui fazemos com que a velocidade da sprite fique parada e criamos a variavel descida (fica true quando o objeto cria a agua em baixo dele)

-No Alarm 0, mudamos a primeira parte do codigo:
Código:
if baixo_solido=false and baixo_agua=false
{
instance_create(x,y+32,ob_agua)
descida=true //Acrecenta isso aqui
}
else
{
...

-E no evento Step, colocamos isto:
Código:
if descida=true //Se criar um objeto agua em baixo dele, ou seja, a agua descer
{
if direita_agua=true and esquerda_agua=false and cima_agua=false //se vier agua só da direita
{image_index=2}

if direita_agua=false and esquerda_agua=true and cima_agua=false //se vier agua só da esquerda
{image_index=1}
if direita_agua=true and esquerda_agua=true//se vier agua dos 2 lados
{image_index=0}
}

Pronto, o resultado é esse akI:
Flws² flw


Última edição por Tedi Ripper em Ter 07 Fev 2012, 08:01, editado 1 vez(es)
avatar
Ranking : Nota D
Notas recebidas : C+D
Data de inscrição : 09/11/2010
Número de Mensagens : 854
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 11

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.google.com

Re: [tutorial] Criando Água ao estilo Minecraft

em Seg 06 Fev 2012, 17:58
, cara, tava precisando disso á muito tempo, este tutorial está perfeito, e ainda não vi nenhum outro que fale disso. Muito obrigado camarada!
avatar
Ranking : Nota C
Notas recebidas : C + C
Data de inscrição : 19/10/2011
Número de Mensagens : 337
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 9

Prêmios
   : 0
   : 1
   : 0
Ver perfil do usuário

Re: [tutorial] Criando Água ao estilo Minecraft

em Seg 06 Fev 2012, 18:46
Funcionou perfeitamente, além de ser muito Util, está bem explicado, parabéns,continue assim Very Happy, só acho que a agua ficaria muito mais liquida, se dependendo da posicao dela, ela trocasse de Sprite, fazendo que com que parecesse que a agua está caindo mesmo Very Happy
avatar
Ranking : Sem avaliações
Data de inscrição : 21/11/2010
Número de Mensagens : 775
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 25

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [tutorial] Criando Água ao estilo Minecraft

em Ter 07 Fev 2012, 07:39
Vlw ai galera

só acho que a agua ficaria muito mais liquida, se dependendo da posicao dela, ela trocasse de Sprite, fazendo que com que parecesse que a agua está caindo mesmo
Cara, ai vai da pessoa, eu fiz minha parte xD
mas acho que a ideia é simples e complexa ao mesmo tempo.
vc tem que checar de onde vem a agua pelos lados, ou de que lado ela vem, se vier só de um lado, ai ela fica com grafico de queda e talz.
talvez eu faço isso, mas tenho que ta com muita vontade xD
flws

--EDIT--
consegui fazer (é mais facil do que parece)
vo posta no tutorial
avatar
Ranking : Nota A
Notas recebidas : D + A + A
Data de inscrição : 06/12/2009
Número de Mensagens : 1229
Insígnias de JAM :

Insignia 1x 1 Insignia 2x 0 Insignia 3x 0
Reputação : 28

Prêmios
   : 1
   : 2
   : 0
Ver perfil do usuário

Re: [tutorial] Criando Água ao estilo Minecraft

em Ter 07 Fev 2012, 08:03
 
Bem... não diria que é ao estilo Minecraft, porque o sistema da água/lava procura o bloco mais próximo pra cair (3D), diria que está mais para Terraria, mesmo assim a água do Terraria é mais rápida... vamos dizer que é uma mistura dos 2! Happy'

Ótimo tutorial!
Uma sugestão é fazer um limite em que a água vai para a horizontal, que nem a do Minecraft que, se não me engano são 7 blocos!

Flw! sorrindo2
avatar
Ranking : Sem avaliações
Data de inscrição : 21/11/2010
Número de Mensagens : 775
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 25

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [tutorial] Criando Água ao estilo Minecraft

em Ter 07 Fev 2012, 08:11
bem, ai ja é outra historia xD
ah, achei varios bugs no tutorial, n sei como resolver e tbm nao quero resolve-los xD
ex:


Isso acontece pq no codigo, verifica-se se existe um objeto solido, ou agua, se existir, ele nao cria ali, entao, ai buga, pq se eu tirar isso, ele vai criar em cima da propria agua, ai vai lagando, pq fica diverços objetos agua na room, mas isso é muuiiitooo chato de arruma, tipo, precisaria checar se ja existe um objeto agua, ai se existir, calcular os objetos ao redor pra ver ser pode ser criado ou nao, ai se der.....
flw flw
avatar
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 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: [tutorial] Criando Água ao estilo Minecraft

em Ter 07 Fev 2012, 08:39
Talvez você devesse mudar a água de posição ao invés de criar água. Ficar criando água indefinidamente vai acabar por inundar todo o jogo. Acho que uma máquina de estados finitos cairia bem, aqui: você usaria estados como "água parada", "água caindo", "água correndo" e pra sair do estado "água parada", usaria o create e eventos em outros objetos (como a destruição de uma represa, por exemplo).

Por outro lado, você pode QUERER inundar o jogo. Nesse caso, eu sugiro usar um novo objeto "fonte d'água", que criaria instâncias de água por um tempo determinado (ou ad eternum, ficaria a critério do desenvolvedor).

Vou ver se consigo bolar alguma coisa e, se conseguir, retorno.
avatar
Ranking : Nota C
Notas recebidas : C + C
Data de inscrição : 19/10/2011
Número de Mensagens : 337
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 9

Prêmios
   : 0
   : 1
   : 0
Ver perfil do usuário

Re: [tutorial] Criando Água ao estilo Minecraft

em Ter 07 Fev 2012, 16:17
O resultado ficou muito bom, com a Agua mais realistica, mas eu encontrei um Bug.

Se dois objetos agua, estiverem para criar um obj de agua no mesmo lugar, o lugar vai ter 2 objetos, como eu usei uma sprite transparente, dá para ver que ficou bugado.



Bom tutorial, mesmo tendo alguns Bugs, acho que deveria ir para o índice. Cool
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 16/02/2012
Número de Mensagens : 57
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.minegamesb.blogspot.com

BUG

em Sab 10 Mar 2012, 15:42
no meu deu o mesmo bug do Funkbuster, se dois objetos agua se colidirem eles ficam mais claros tip


avatar
Data de inscrição : 19/03/2012
Número de Mensagens : 25
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [tutorial] Criando Água ao estilo Minecraft

em Ter 20 Mar 2012, 19:22
aki n deu
ta dando isso

___________________________________________
ERROR in
action number 1
of Create Event
for object obj_agua:

Error in code at line 1:
cima_solido=place_meeting(x,y-1,ob_solido)
^
at position 33: Unknown variable ob_solido
avatar
Data de inscrição : 25/04/2011
Número de Mensagens : 398
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3

Prêmios
   : 0
   : 1
   : 0
Ver perfil do usuário

Re: [tutorial] Criando Água ao estilo Minecraft

em Ter 20 Mar 2012, 19:53
jharik escreveu:aki n deu
ta dando isso

___________________________________________
ERROR in
action number 1
of Create Event
for object obj_agua:

Error in code at line 1:
cima_solido=place_meeting(x,y-1,ob_solido)
^
at position 33: Unknown variable ob_solido

alguem escreveu obj errado, ta ob_solido ao invez de obj_solido
avatar
Ranking : Nota D
Notas recebidas : D+B+D
Data de inscrição : 03/10/2011
Número de Mensagens : 421
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: [tutorial] Criando Água ao estilo Minecraft

em Ter 20 Mar 2012, 19:54
talvez vc trocou os nomes dos objetos....
edit: opss, o guisao postou antes Razz
avatar
Data de inscrição : 08/04/2012
Número de Mensagens : 5
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: [tutorial] Criando Água ao estilo Minecraft

em Dom 08 Abr 2012, 14:34
Pô cara , ficou bem legal , mas no meu aqui ficou bugando pra valer , deu um lag tremendo aqui o personagem do meu jogo andava em câmera lenta por causa do Lag , se tiver uma solução para parar de lagar seria legal . agradeço flw Exclamation
avatar
Ranking : Nota C
Notas recebidas : C + C
Data de inscrição : 19/10/2011
Número de Mensagens : 337
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 9

Prêmios
   : 0
   : 1
   : 0
Ver perfil do usuário

Re: [tutorial] Criando Água ao estilo Minecraft

em Dom 08 Abr 2012, 16:26
Você colocou o evento do "Outside Room" e um instance_destroy() depois?

Event Other Outside Room
Action Destroy Destroy Instance
avatar
Data de inscrição : 08/04/2012
Número de Mensagens : 5
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: [tutorial] Criando Água ao estilo Minecraft

em Dom 08 Abr 2012, 22:09
não mas vou tentar , qualquer coisa eu comento de novo lol!
avatar
Ranking : Nota D
Notas recebidas : C+D
Data de inscrição : 09/09/2011
Número de Mensagens : 231
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 12

Prêmios
   : 0
   : 0
   : 2
Ver perfil do usuário

Re: [tutorial] Criando Água ao estilo Minecraft

em Qua 25 Abr 2012, 16:36
ah
eu tenho uma pergunta,como eu faço para ele agir em outros objetos,como por exemplo uma caixa ou objetos de formas não quadradas mais geometricas como objeto de forma em L ou um triangulo?
avatar
Ranking : Sem avaliações
Data de inscrição : 21/11/2010
Número de Mensagens : 775
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 25

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [tutorial] Criando Água ao estilo Minecraft

em Qua 25 Abr 2012, 17:20
Hehehe, meu amigo, ai tem que pensar bem, eu fiz um sistema bem simples, algo mais complexo necessitaria pelo menos, uma correçao de bugs basicos...
até mais
avatar
Ranking : Nota D
Notas recebidas : C+D
Data de inscrição : 09/09/2011
Número de Mensagens : 231
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 12

Prêmios
   : 0
   : 0
   : 2
Ver perfil do usuário

Re: [tutorial] Criando Água ao estilo Minecraft

em Qua 25 Abr 2012, 17:24
Tedi Ripper escreveu:Hehehe, meu amigo, ai tem que pensar bem, eu fiz um sistema bem simples, algo mais complexo necessitaria pelo menos, uma correçao de bugs basicos...
até mais


¬¬ parece que não entendeu
isso somente serve para o ob_solido
caso ao contrario ultrapassa o objeto
e quero saber isso,quero que o ob_agua tenha o mesmo efeito com outros objetos,não somente ao ob_solido entendeu?
avatar
Data de inscrição : 23/04/2012
Número de Mensagens : 13
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: [tutorial] Criando Água ao estilo Minecraft

em Qua 25 Abr 2012, 18:11
Olha o respeito rapáz!Descobri a segunda intenção!
*Risos* Estou brincando mas olha:

Entendestes?
Haha
Brincadeiras sempre são bem vindas...(Ou não)
Até! Happy
avatar
Ranking : Nota C
Notas recebidas : C + C
Data de inscrição : 19/10/2011
Número de Mensagens : 337
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 9

Prêmios
   : 0
   : 1
   : 0
Ver perfil do usuário

Re: [tutorial] Criando Água ao estilo Minecraft

em Qua 25 Abr 2012, 19:21
Rodrigo, coloque o objeto que você quer, com que ele seja Parente do solido.

Até! flw
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum