[Isométrico] Parte 2 - Blocos Flutuante e Plataformas Móveis

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

[Isométrico] Parte 2 - Blocos Flutuante e Plataformas Móveis

Mensagem por JV Justino em Sex 01 Jul 2011, 19:21

Nome: [Isométrico] Parte 2 - Blocos Flutuante e Plataformas Móveis
Descrição: Como fazer blocos que flutuam e plataformas que se movimentam
Nível: Intermediário
Requerimentos: GM8 Lite/Pro

Olá a todos!
Como prometido, aqui está o segundo tutorial sobre jogos Isométricos. Neste tutorial será ensinado como fazer Blocos flutuantes, ou seja, blocos que ficam parados no ar, fazendo com que o player possa passar por baixo dele, e Plataformas móveis, platarformas que podem se locomover levando o player sobre ela.

Vamos começar!

Se ainda não viu a primeira aula, Clique Aqui.

1- Blocos Flutuantes


Crie um objeto chamado obj_float. Coloque nele a sprite spr_block e a mask
mask_block, e como Parent coloque o objeto obj_block.

No evento Create coloque:
Código:
z=32;
depth=-y-z/3;
-Explicando-

z=32;
Define a altura do bloco.
depth=-y-z/3
Define a profundidade, relacionando a posição y com a altura.

Agora no evento Step, coloque:
Código:
if(obj_player.z>=z || obj_player.z<z-16) solid=1
else solid=true
-Explicando

Se o player estiver acima do bloco ou abaixo dele, ele não será sólido, permitindo o player caminhar sobre ou abaixo dele. Se o player estiver ao lado do bloco, ele será sólido.

E no evento Draw coloque:
Código:
draw_sprite(sprite_index,image_index,x,y-z+16)
-Explicando-
Desenha a sprite do objeto, diminuindo a posição y pela altura, e adicionando 16, que é o tamanho total do objeto.

Bom, agora que o bloco flutuante está feito, vamos configurar o player para atravessá-lo quando estiver em baixo:

No evento de colisão com o obj_block coloque:
Código:
if(z>=other.z-40 && z<other.z)
{
    zspeed=-2;
    zspeed-=zgravity;
}
-Explicando-

Se o player estiver abaixo do bloco, e colidir com ele enquanto pula, ele irá voltar ao chão.

E está pronto o bloco flutuante. Para fazer outros blocos flutuantes com alturas diferentes, é só seguir os procedimentos do tutorial, somente alterando a altura. Lembrando que ela deve ser divisível a 16.

2- Plataformas Móveis


Crie uma sprite e chame-a de spr_platform. Carregue a imagem:

Crie um objeto e chame-o de obj_platform. Coloque nele a sprite spr_platform e a mask mask_block.

No evento Create coloque:
Código:
z=48;
hspeed=2;
vspeed=-1;
-Explicando-

z=32;
Define a altura da plataforma.
hspeed=2
Define a velocidade horizontal.
vspeed=-1
Define a velocidade vertical.

No evento Step coloque:
Código:
if(obj_player.z>=z || obj_player.z<z-16) solid=false
else solid=true
depth=-y-z/3;
-Explicando-

Define se a plataforma será sólida ou não, conforme a altura do player, e calcula a profundidade.

Adicione um evento de colisão com o obj_block, e nele coloque:
Código:
hspeed=-hspeed;
vspeed=-vspeed;
-Explicando

Inverte as velocidades horizontal e vertical, fazendo a plataforma andar na direção oposta.

E no evento Draw coloque:
Código:
draw_sprite(sprite_index,image_index,x,y-z+16)
-Explicando

Desenha a sprite conforme as posições x e y e a altura.


Agora que a plataforma foi feita, vamos configurar o player:

Adicione o evento de colisão com o obj_platform, e nele coloque:
Código:
if(z>=other.z)
{
    zland=other.z;
    hspeed=other.hspeed;
    vspeed=other.vspeed;
}
if(z>=other.z-40 && z<other.z)
{
    zspeed=-4;
    zspeed-=zgravity;
}
-Explicando-

if(z>=other.z)
{
zland=other.z;
hspeed=other.hspeed;
vspeed=other.vspeed;
}

Se estiver sobre a plataforma, ele irá se mover conforme a hspeed e a vspeed da plataforma.
if(z>=other.z-40 && z{
zspeed=-4;
zspeed-=zgravity;
}

Se estiver abaixo dela e colidir durante o pulo, ele voltará ao chão.


Pronto! A plataforma está feita e o player está configurado! Mas... ele não se mexe!
É por que ele foi programado para não se mover se nenhuma tecla for pressionada. Para isso não acontecer, temos que mudar um código.

No evento Step do obj_player, haverá um código como esse:
Código:
else
{
    vspeed=0;
    hspeed=0;
}

Substitua por este:
Código:
else if(!place_meeting(x,y,obj_move))
{
    vspeed=0;
    hspeed=0;
}

Assim, ele não ficará parado se estiver sobre a plataforma.


E assim fica pronta a plataforma. Você pode criar plataformas seguindo os mesmos procedimentos, alterando a altura e a direção.

3- Bônus


Quando você coloca os blocos flutuantes e móveis na room, eles dão a impressão de estarem no chão. Para evitar que isso aconteça, você pode usar uma sombra. Crie uma sprites e chame-a de spr_shadow, e carregue esta imagem:

Para desenhá-la, vá ao evento Draw do bloco, e coloque o código:
Código:
draw_sprite(spr_shadow,0,x,y);

Ele desenhará a sombra abaixo do bloco, nas suas posições x e y, desconsiderando a altura do bloco.


E chega ao fim este tutorial. Espero que tenham gostado! Qualquer dúvida, crítica ou sugestão é só falar!

さようなら!


Parte 3 - Movimentação de NPCs. Aguardem!


Última edição por JV Justino em Qua 17 Dez 2014, 15:37, editado 12 vez(es)

JV Justino

Ranking : Nota A
Número de Mensagens : 619
Idade : 19
Data de inscrição : 07/12/2010
Notas recebidas : A+A
Reputação : 20
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Isométrico] Parte 2 - Blocos Flutuante e Plataformas Móveis

Mensagem por Lord Minus em Sex 01 Jul 2011, 19:38

lendo jornal ótimo tuto parabéns muito bom mesmo não vou poder testar mas li tudin tá ótimo mesmo creio que será +1 tutorial aprovado para a lista vc explica mto bem disponibiliza uma engine do tutorial

Lord Minus

Ranking : Nota D
Número de Mensagens : 269
Idade : 19
Data de inscrição : 23/09/2010
Notas recebidas : E-E-C-D-C
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://facebook.com/lordminus

Voltar ao Topo Ir em baixo

Re: [Isométrico] Parte 2 - Blocos Flutuante e Plataformas Móveis

Mensagem por JV Justino em Sex 01 Jul 2011, 20:02

!GO┴E! escreveu: lendo jornal ótimo tuto parabéns muito bom mesmo não vou poder testar mas li tudin tá ótimo mesmo creio que será +1 tutorial aprovado para a lista vc explica mto bem disponibiliza uma engine do tutorial
Muito obrigado!
Talvez disponibilizarei, mas só depois.

flw

Para todos:
Os códigos estão apresentando alguns problemas, devido a auto-formatação. Se tiverem alguma dúvida relacionada é só falar que eu ajudo.

Muito obrigado!

JV Justino

Ranking : Nota A
Número de Mensagens : 619
Idade : 19
Data de inscrição : 07/12/2010
Notas recebidas : A+A
Reputação : 20
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Isométrico] Parte 2 - Blocos Flutuante e Plataformas Móveis

Mensagem por andreh em Sex 01 Jul 2011, 20:08

Parabéns! Mais um ótimo tutorial! Sei lá, mas não libere a engine ainda, mta gente vai só baixar e sair usando, termine os tutos e vá deixando o leitor curioso kkkkkkkk, e só depois libere!

andreh

Ranking : Nota C
Número de Mensagens : 183
Idade : 20
Data de inscrição : 09/03/2011
Notas recebidas : C
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Isométrico] Parte 2 - Blocos Flutuante e Plataformas Móveis

Mensagem por JV Justino em Sex 01 Jul 2011, 20:13

andreh escreveu:Parabéns! Mais um ótimo tutorial! Sei lá, mas não libere a engine ainda, mta gente vai só baixar e sair usando, termine os tutos e vá deixando o leitor curioso kkkkkkkk, e só depois libere!
É verdade. Este é um problema na disponibilização de engines. Prefiro muito mais tutoriais, pois você tem lê-lo para saber o que está fazendo. Engines não, você só pega os códigos e usa eles sem saber o que fazem.
Muito obrigado por comentar!

JV Justino

Ranking : Nota A
Número de Mensagens : 619
Idade : 19
Data de inscrição : 07/12/2010
Notas recebidas : A+A
Reputação : 20
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Isométrico] Parte 2 - Blocos Flutuante e Plataformas Móveis

Mensagem por sonic luan em Sex 01 Jul 2011, 21:41

muito bom excelente tutorial.
100% aprovado Smile

sonic luan

Ranking : Nota C
Número de Mensagens : 1003
Idade : 17
Data de inscrição : 28/01/2011
Notas recebidas : C-D-A-C
Reputação : 18
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://sonicmaker.forumeiros.com/memberlist

Voltar ao Topo Ir em baixo

Re: [Isométrico] Parte 2 - Blocos Flutuante e Plataformas Móveis

Mensagem por Livsk em Sex 01 Jul 2011, 21:50

Muito bom tutorial, vai ajudar muita gente!

Esses dias eu tava achando alguns tutos para isometric! Agora não vou mais precisar procurar! Laughing

100% aprovado
²

Flw!

Livsk

Ranking : Nota C
Número de Mensagens : 364
Idade : 19
Data de inscrição : 02/06/2011
Notas recebidas : C + C + D + D + D + D + B + B + A + C + B
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Re: [Isométrico] Parte 2 - Blocos Flutuante e Plataformas Móveis

Mensagem por JV Justino em Sex 01 Jul 2011, 22:03

sonic luan escreveu:muito bom excelente tutorial.
100% aprovado Smile
Muito obrigado!

livsk escreveu:Muito bom tutorial, vai ajudar muita gente!

Esses dias eu tava achando alguns tutos para isometric! Agora não vou mais precisar procurar! Laughing

100% aprovado
²

Flw!
Jogos isométricos são muito difíceis, por isso é difícil achar tutoriais e engines sobre.
Muito obrigado!

flw

JV Justino

Ranking : Nota A
Número de Mensagens : 619
Idade : 19
Data de inscrição : 07/12/2010
Notas recebidas : A+A
Reputação : 20
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Isométrico] Parte 2 - Blocos Flutuante e Plataformas Móveis

Mensagem por Conteúdo patrocinado Hoje à(s) 09: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