Entrar
Últimos assuntos
» player não consegue andarpor 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] A melhor movimentação em plataforma - Com Sprites
+8
joao truzzi
Leon e Chris
Dancity
Super Games
eliton perera
Knonick
PedroX
Limalokão
12 participantes
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
[TUTO] A melhor movimentação em plataforma - Com Sprites
Boas! Galera! Vamos a um tutorial que você nunca mais vai esquecer e sempre vai querer usar =D
Porque? Por que é simplesmente PERFEITO =D
Nome: A melhor movimentação em plataforma - Com Sprites
Descrição: Tuto que ensina à você criar uma movimentação em plataforma perfeita!
Nível de dificuldade: iniciante, mediano.
Requerimentos: GM 8 LITE
Desenvolvimento: 100% completo
Bem então é o seguinte, temos que criar 6 sprites. Porque 6 sprites? Por que simplesmente você tem que criar um sprite que de um lado do sprite seja de um jeito, e do outro seja de outro jeito, ou seja que nem esse:
Uma andando para a direita: spr_and_dir
Uma andando para a esquerda: spr_and_esq
Uma parada para a direita: spr_par_dir
Uma parada para a esquerda: spr_par_esq
Uma pulando para a direita: spr_pul_dir
Uma pulando para a esquerda: spr_pul_esq
LEMBRANDO MARQUE SEMPRE O CENTRO DA SPRITE E TODAS TEM QUE ESTAR COM O MESMO TAMANHO EXEMPLO: 100X100
Após criado a sprite Você deverá fazer a maskara do player, Mas meu personagem não tem mascara!
A mascara que vamos criar não é a mascara do rosto e sim uma mascara para a colisão do nosso player, é a peça que ira bater com as coisas! A mascara nada mais é do que uma sprite preta do mesmo tamanho do pé do player, assim: spr_mask_player
Ok, tendo a mascara criada e os 6 sprites do player, faça uma sprite que será o chão tbm =D
Vamos aos objetos! São apenas 2 objetos: o obj_player e o obj_chao
No obj_player, selecione a spr_par_esq e onde esta escrito mask coloque o mask do player que vc criou lembra spr_mask_player
Adicione um evento create e arraste o execute code na aba control e coloque o seguinte código:
Adicione um evento step e arraste o execute code na aba control e coloque o seguinte código:
Feito isso adicione um evento de colisão com o obj_chao e arraste o execute code na aba control e coloque o seguinte código:
Agora no obj_chao, marque ele como solid!
Coloque tudo na room de acordo com o seu gosto e teste =D
Então é isso galera caso encontrem algum erro me comuniquem! Obrigado até a próxima...
Tutorial feito por Soul Limaloko
Sprites por Mutte
Porque? Por que é simplesmente PERFEITO =D
Nome: A melhor movimentação em plataforma - Com Sprites
Descrição: Tuto que ensina à você criar uma movimentação em plataforma perfeita!
Nível de dificuldade: iniciante, mediano.
Requerimentos: GM 8 LITE
Desenvolvimento: 100% completo
Bem então é o seguinte, temos que criar 6 sprites. Porque 6 sprites? Por que simplesmente você tem que criar um sprite que de um lado do sprite seja de um jeito, e do outro seja de outro jeito, ou seja que nem esse:
- Spoiler:
- ESQUERDA
DIREITA
Uma andando para a direita: spr_and_dir
Uma andando para a esquerda: spr_and_esq
Uma parada para a direita: spr_par_dir
Uma parada para a esquerda: spr_par_esq
Uma pulando para a direita: spr_pul_dir
Uma pulando para a esquerda: spr_pul_esq
LEMBRANDO MARQUE SEMPRE O CENTRO DA SPRITE E TODAS TEM QUE ESTAR COM O MESMO TAMANHO EXEMPLO: 100X100
Após criado a sprite Você deverá fazer a maskara do player, Mas meu personagem não tem mascara!
A mascara que vamos criar não é a mascara do rosto e sim uma mascara para a colisão do nosso player, é a peça que ira bater com as coisas! A mascara nada mais é do que uma sprite preta do mesmo tamanho do pé do player, assim: spr_mask_player
- Spoiler:
Ok, tendo a mascara criada e os 6 sprites do player, faça uma sprite que será o chão tbm =D
Vamos aos objetos! São apenas 2 objetos: o obj_player e o obj_chao
No obj_player, selecione a spr_par_esq e onde esta escrito mask coloque o mask do player que vc criou lembra spr_mask_player
- Spoiler:
Adicione um evento create e arraste o execute code na aba control e coloque o seguinte código:
- Código:
image_speed=1; //É a velocidade da animação do nosso personagem. Aqui, você pode colocar o valor que desejar.
parado=true; //Variável para indicar se o personagem está parado ou não.
andando=false; //Variável para indicar se nosso personagem está andando ou não.
noar=false; //O valor dessa variável vai indicar se o personagem está no ar ou não. Importante para a checagem dos sprites.
lado=0; //O lado para que o nosso personagem está virado. 1 seria virado para a direita e 0 para a esquerda.
Adicione um evento step e arraste o execute code na aba control e coloque o seguinte código:
- Código:
if (place_free(x,y+1)) //Checa se 1 pixel abaixo está vazio, ou seja, se não tem chão.
{gravity=0.5; noar=true;
//Coloca valor na gravidade e define a variável noar para true, ou seja, o personagem não está no chão.
} else
//Se a expressão place_free for falsa, ou seja, tenha chão embaixo:
{gravity=0; noar=false; //Gravidade se torna zero e a variável noar se torna false, ou seja, o personagem está no chão.
}
//Definiões de pulo
if (keyboard_check_pressed(vk_up)) && ! (place_free(x,y+1)) //Checa se a tecla de direção cima foi pressionada e se NÃO tem um pixel livre abaixo.
{
vspeed=-9; noar=true; friction=0 //Se for verdade, velocidade vertical se torna 9 negativo e a variávell noar se torna true, ou seja, o personagem NÃO está no chão.
}
if (vspeed>12) //Checa se a velocidade vertical do personagem possui um valor maior que 12.
vspeed=12; //Se estiver maior do que 12, o valor se torna 12. Isso serve para que o personagem não ultrapasse grandes velocidades verticais, podendo causar bugs no jogo.
if (keyboard_check(vk_left)) && ! (keyboard_check(vk_right)) && (place_free(x-5,y)) //Checa se a tecla de direção esquerda está sendo pressionada, e se a tecla direita NÃO está sendo pressionada e se tem 5 pixels de espaço à esquerda.
{x-=5; lado=0; andando=true; parado=false;//Caso a expressão acima seja verdadeira, o personagem se move 5 pixels a esquerda, virá para a esquerda de acordo com a variável lado, a variável andando se torna true para indicar que o personagem está andando e a variável parado se torna false, ou seja, o personagem NÃO está parado.
}
if (keyboard_check(vk_right)) && ! (keyboard_check(vk_left)) && (place_free(x+5,y)) //Mesmo de cima, só que dessa vez, checamos se a tecla de direção direita está sendo pressionada, se a tecla de direção esquerda NÃO está sendo pressionada e se tem 5 pixels à direita livre.
{x+=5; lado=1; andando=true; parado=false; //A mesma coisa do evento anterior. A única coisa que muda é que aqui o personagem se move 5 pixels a direita e a variável lado se torna 1, ou seja, ele vira pra direita.
}
if ! (keyboard_check(vk_left)) && ! (keyboard_check(vk_right)) //Checa se a tecla direita e a tecla esquerda não estão sendo precionadas.
{andando=false; parado=true;//Caso seja verdade, a variável andando se torna false, ou seja, o personagem NÃO está andando. E a variável parado se torna true, ou seja, o personagem está parado.
}
//Sprites
if (noar==false) //Checa se o personagem está no ar.
{
if (andando=true) && (lado==1) //Checa se o personagem está andando e se ele está virado para a direita.
{
sprite_index=spr_and_dir; //Se sim, a sprite dele se torna a sprite do personagem andando para a direita.
}
if (andando=true) && (lado==0) //Checa se o personagem está andando e se ele está virado para a esquerda.
{
sprite_index=spr_and_esq; //Se sim, o sprite dele se torna a sprite do personagem andando para a esquerda.
}
if (andando==false) && (parado==true) && (lado==1) //Se o personagem não está andando, se o personagem está parado e está virado para a direita:
{
sprite_index=spr_par_dir; //Se sim, a sprite dele se torna a sprite do personagem parado para a direita.
}
if (andando==false) && (parado==true) && (lado==0) //Se o personagem não está andando, está parado e está virado para a esquerda:
{
sprite_index=spr_par_esq; //Se sim, a sprite dele se torna o sprite do personagem parado para a esquerda.
}
}
else //Caso o personagem NÃO esteja com os pés no chão:
{
if (vspeed>0) || (vspeed<0) && (lado==1) //Se ele está pulando ou caindo e está virado para a direita:
{
sprite_index=spr_pul_dir; //O sprite do personagem se torna o sprite dele pulando para a direita.
}
if (vspeed>0) || (vspeed<0) && (lado==0) //Se o personagem está pulando ou caindo e está virado para a esquerda:
{
sprite_index=spr_pul_esq; //O sprite do personagem se torna o sprute dele pulando para a esquerda.
}
}
Feito isso adicione um evento de colisão com o obj_chao e arraste o execute code na aba control e coloque o seguinte código:
- Código:
move_contact_solid(direction,12);
vspeed=0;
Agora no obj_chao, marque ele como solid!
Coloque tudo na room de acordo com o seu gosto e teste =D
Então é isso galera caso encontrem algum erro me comuniquem! Obrigado até a próxima...
Tutorial feito por Soul Limaloko
Sprites por Mutte
Última edição por Soul Limaloko em Dom 06 Nov 2011, 04:30, editado 2 vez(es)
Re: [TUTO] A melhor movimentação em plataforma - Com Sprites
Bom tutorial.
O movimento está fluindo bem.
Só acho que há um exagero de variaveis, me fez lembrar a Aula 11 do reddragon (que eu tenho no pc).
Mesmo assim, está com os movimentos bons.
Até mais!
O movimento está fluindo bem.
Só acho que há um exagero de variaveis, me fez lembrar a Aula 11 do reddragon (que eu tenho no pc).
Mesmo assim, está com os movimentos bons.
Até mais!
Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.
Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.
Aprenda a calcular a velocidade de suas animações
Entre para o Clube do Inglês:
Re: [TUTO] A melhor movimentação em plataforma - Com Sprites
HEHE Vlws, mas sabe neh? Quanto mais Variaveis Menos Bugs! =D
Re: [TUTO] A melhor movimentação em plataforma - Com Sprites
Ótimo tutorial! Estou usando no meu jogo, mas modifiquei um pouco. Créditos garantidos.
Knonick- Data de inscrição : 10/05/2011
Reputação : 0
Número de Mensagens : 92
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [TUTO] A melhor movimentação em plataforma - Com Sprites
gente porq aparece isso meu
FATAL ERROR in
action number 1
of Step Event
for object obj_parado(3:
COMPILATION ERROR in code action
Error in code at line 36:
sprite_index=spr_andando(3; //Se sim, a sprite dele se torna a sprite do personagem andando para a direita.
^
at position 15: Unknown function or script: spr_andando
FATAL ERROR in
action number 1
of Step Event
for object obj_parado(3:
COMPILATION ERROR in code action
Error in code at line 36:
sprite_index=spr_andando(3; //Se sim, a sprite dele se torna a sprite do personagem andando para a direita.
^
at position 15: Unknown function or script: spr_andando
eliton perera- Data de inscrição : 04/11/2011
Reputação : 1
Número de Mensagens : 76
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [TUTO] A melhor movimentação em plataforma - Com Sprites
Oi amigo, vi que voce está com problema isso aparece por que você tem que renomear as suas sprites ou seja, ao inves de sprite0 que ja vem de padrão voce deve colocar spr_andando (spr= sprite) entende?
Re: [TUTO] A melhor movimentação em plataforma - Com Sprites
Ótimo tutorial, só que eu estou sem tempo para testar o tutorial, poderia fazer uma engine?
Super Games- Games Ranking :
Notas recebidas : C
Data de inscrição : 10/06/2010
Reputação : 36
Número de Mensagens : 2800
Prêmios :
x 0 x 0 x 0
x 0 x 1 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
- Game Maker Studio 2.0
- Java
- Godot
- Javascript
- C ou C++
Re: [TUTO] A melhor movimentação em plataforma - Com Sprites
porq no meu ta dando esse erro
http://dl.dropbox.com/u/48274448/error%20do%20caralho.png
http://dl.dropbox.com/u/48274448/error%20do%20caralho.png
eliton perera- Data de inscrição : 04/11/2011
Reputação : 1
Número de Mensagens : 76
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [TUTO] A melhor movimentação em plataforma - Com Sprites
Olha alí na linha 33 você abriu um "{" e não fechou. É isso que está causando o erro.
Edit: O Tutorial ficou muito bom, testei os movimentos, e ficaram bem legais. Parabéns!
Você podia explicar o que cada código faz, fora isso tá perfeito.
Edit: O Tutorial ficou muito bom, testei os movimentos, e ficaram bem legais. Parabéns!
Você podia explicar o que cada código faz, fora isso tá perfeito.
Dancity- Games Ranking :
Notas recebidas : A
Data de inscrição : 11/01/2009
Reputação : 8
Número de Mensagens : 1340
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 0
x 0 x 0 x 0
Re: [TUTO] A melhor movimentação em plataforma - Com Sprites
Dancity escreveu:Olha alí na linha 33 você abriu um "{" e não fechou. É isso que está causando o erro.
Edit: O Tutorial ficou muito bom, testei os movimentos, e ficaram bem legais. Parabéns!
Você podia explicar o que cada código faz, fora isso tá perfeito.
Vlws Bro, vou fazer isso já!
EDIT
Na verdade, tem como explicar mais do que já tá? uashuahsuahuahs eu fui editar mas ja ta tudo explicado! kkkkkkkkkkk Flws Mais uma vez Obrigado!
duvida sobre spr_mask
isso q é mask?
http://dl.dropbox.com/u/48274448/spr%20mask.jpg
é assim
EDIT:
ja resolvi e consigui vlw cara seu topico é demais
http://dl.dropbox.com/u/48274448/spr%20mask.jpg
é assim
EDIT:
ja resolvi e consigui vlw cara seu topico é demais
eliton perera- Data de inscrição : 04/11/2011
Reputação : 1
Número de Mensagens : 76
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [TUTO] A melhor movimentação em plataforma - Com Sprites
É isso mesmo cara! Ta aprendendo em! ;D mas cuidado seu warning ja ta menos que o meu! uashuahuashuahuhs! Flws cara
Re: [TUTO] A melhor movimentação em plataforma - Com Sprites
NOSSA, MUITO BOM ESSE TUTORIAL!
TO USANDO ELE, VOU DAR CRÉDITOS
Me ajudou muito, tudo funciona perfeitamente
TO USANDO ELE, VOU DAR CRÉDITOS
Me ajudou muito, tudo funciona perfeitamente
Leon e Chris- Games Ranking :
Notas recebidas : E+E+D+E
Data de inscrição : 05/11/2011
Reputação : 1
Número de Mensagens : 125
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [TUTO] A melhor movimentação em plataforma - Com Sprites
muito bom o tutorial, eu ñ testei mas eu vi q é a mesma coisa q
eu fiz no meu jogo de mario
eu fiz no meu jogo de mario
joao truzzi- Data de inscrição : 19/09/2011
Reputação : 0
Número de Mensagens : 24
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [TUTO] A melhor movimentação em plataforma - Com Sprites
aqui quando o personagem cai no chão ele fica parado eu n consigo meche nele ele não muda sprite nem nada fica lá paradão, mais dai só se meche quando eu pulo e quando toca o chão fica paradão de novo, e eu não quero fazer meu jogo só pulando :l .
Stilomeu- Data de inscrição : 24/07/2013
Reputação : 0
Número de Mensagens : 3
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [TUTO] A melhor movimentação em plataforma - Com Sprites
Stilomeu escreveu:aqui quando o personagem cai no chão ele fica parado eu n consigo meche nele ele não muda sprite nem nada fica lá paradão, mais dai só se meche quando eu pulo e quando toca o chão fica paradão de novo, e eu não quero fazer meu jogo só pulando :l .
Neste caso, foi por causa da Mask que você usou lá nos sprites, ou porque você esqueceu de marcar a opção solid no objeto... dá uma olhada lá
Muito bom
Muito bom seu tuto bem explicado, todos deveriam ser assim Parabéns e continue assim..
willyruduit- Games Ranking :
Notas recebidas : B-B-B-A-A
Data de inscrição : 02/08/2013
Reputação : 33
Número de Mensagens : 306
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [TUTO] A melhor movimentação em plataforma - Com Sprites
Obrigado Cara Espero qualquer dia mandar mais uns TUTO's. Faz tempo que não faço...
Re: [TUTO] A melhor movimentação em plataforma - Com Sprites
Você poderia criar uma continuação deste tutorial ensinando a se movimentar em rampas? sem dar pulinhos quando o jogador esta descendo?
Re: [TUTO] A melhor movimentação em plataforma - Com Sprites
poderia atualizar o tutorial? as imagens estão quebradas, mas lembro que esse tutu era top 10
e eu adicionaria na 29º linha do CODE do step o seguinte
para impedir um bug de ficar com o sprite "andando" sem se mover ao pressionar a tecla direita e esqueda ao mesmo tempo
e eu adicionaria na 29º linha do CODE do step o seguinte
- Código:
if (keyboard_check(vk_left) && (keyboard_check(vk_rigth) //Checa se a tecla direita e a tecla esquerda ESTÃO sendo precionadas.
{andando=false; parado=true;//Caso seja verdade, a variável andando se torna false, ou seja, o personagem NÃO está andando. E a variável parado se torna true, ou seja, o personagem está parado.
}
para impedir um bug de ficar com o sprite "andando" sem se mover ao pressionar a tecla direita e esqueda ao mesmo tempo
Jean- Games Ranking :
Data de inscrição : 31/05/2018
Reputação : 0
Número de Mensagens : 8
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» [TUTO] Criando um Game de Plataforma [TUTO]
» [TUTO]Movimentação aléatoria
» [Tutorial]Movimentação de plataforma
» Movimentação em plataforma...
» Movimentação de sprite de plataforma em GML
» [TUTO]Movimentação aléatoria
» [Tutorial]Movimentação de plataforma
» Movimentação em plataforma...
» Movimentação de sprite de plataforma em GML
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos