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


Código de movimento personagem

+3
Kevin
Eudes - Hyo
GAMEREVIL
7 participantes

Ir para baixo

Código de movimento personagem Empty Código de movimento personagem

Mensagem por GAMEREVIL Sáb 23 maio 2009, 06:02

Olá.
Estou pedindo ajuda para concluir uma movimentação.
Pelo tutorial do forum, consegui realizar varios movimentos.
Faltando abaixar e olhar para cima.

parado DR, ES/ OK
andando DR,ES/OK
pulando DR,ES/OK
..................................falta
abaixado DR,ES (se soltar (vk_down) volta parado.
cima (se soltar (vk_up) volta parado

Quando tentei fazer com teclado, não consegui pular, agora com código, não consigo
fazer personagem abaixar e olhar cima.

codigo que estou estudando é esse:

Código:
if (place_free(x,y+1)) //Checa se 1 pixel abaixo está vazio, ou seja, não tem chão.
{gravity=0.45; 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(ord("X"))) && ! (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=-5; noar=true; //Se for verdade, velocidade vertical se torna 5 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 velocidadevertical do personagem possui um valor maior que 12.
vspeed=12; //Se tiver, 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-3,y)) //Checa se a tecla de direção esquerda está sendo pressionada, se a tecla direita NÃO está sendo pressionada e se tem 3 pixels de espaço à esquerda.
{x-=3; lado=0; andando=true; parado=false; //Caso a expressão acima seja verdadeira, o personagem se move 3 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+3,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 3 pixels à direita livre.
{x+=3; lado=1; andando=true; parado=false; //A mesma coisa do evento anterior. A única coisa que muda é que aqui o personagem se move 3 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.
}

if keyboard_check(vk_down)
{x-=3; lado=0; abaixando=true; parado=false;
}

if keyboard_check(vk_down)
{x+=3; lado=1; abaixado=true; parado=false;
}

if ! (keyboard_check(vk_down)) && !
{abaixado=false; parado=true;
}

if keyboard_check(vk_up)
{x+=0; lado=1 cima=true; parado=false;
}

if ! (keyboard_check(vk_up));
{cima=false; parado=true;
}

//Sprites
if (noar==false) //Checa se o personagem está no ar.

{
if (cima=true) && (lado==1)
sprite_index=robo_cima;
}
if (andando=true) && (lado==1) //Checa se o personagem está andando e se ele está virado para a direita.
{
sprite_index=robo_andandoDR; //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=robo_andandoES; //Se sim, o sprite dele se torna a sprite do personagem andando para a esquerda.
}
if (abaixado=true) && (lado==1) //**Checa se o personagem esta abaixado e se ele esta virado para direita.
{
sprite_index=robo_abaixadoDR; //se sim, a sprite dele se torna abaixado direito.
}
if (abaixado=true) && (lado==0) //checa se a sprite dele esta abaixado esquerda.
{
sprite_index=robo_abaixadoES; // se sim a sprite se torna abaixado 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=robo_paradoDR; //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=robo_paradoES; //Se sim, a sprite dele se torna o sprite do personagem parado para a esquerda.
}
if (andando==false) && (abaixado==true) && (lado==1) //**Se o personagem não está andando, se o personagem está abaixado e está virado para a direita:
{
sprite_index=robo_abaixadoDR; //**Se sim, a sprite dele se torna a sprite do personagem abaixado para a direita.
}
if (andando==false) && (abaixado==true) && (lado==0) //**Se o personagem não está andando, está abaixado e está virado para a esquerda:
{
sprite_index=robo_abaixadoES; //**Se sim, a sprite dele se torna o sprite do personagem abaixado 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=robo_pulandoDR; //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=robo_pulandoES; //O sprite do personagem se torna o sprute dele pulando para a esquerda.
}
}


Obrigado
GAMEREVIL
GAMEREVIL

Data de inscrição : 14/05/2009
Reputação : 0
Número de Mensagens : 11
Prêmios : Código de movimento personagem 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://gamerevil.blogspot.com/

Ir para o topo Ir para baixo

Código de movimento personagem Empty Re: Código de movimento personagem

Mensagem por GAMEREVIL Sáb 23 maio 2009, 15:36

Bom para resumir, queria explicação de como inseri os códigos:
spr_baixo esquedo e direito. (fixo sem se mover quando abaixado e quando soltar tecla spr_parado)
spr_cima (fixo)

.
GAMEREVIL
GAMEREVIL

Data de inscrição : 14/05/2009
Reputação : 0
Número de Mensagens : 11
Prêmios : Código de movimento personagem 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://gamerevil.blogspot.com/

Ir para o topo Ir para baixo

Código de movimento personagem Empty Re: Código de movimento personagem

Mensagem por Eudes - Hyo Ter 02 Jun 2009, 10:58

Vc quer segurar a Tecla DOWN e o char ficar agachado ?

if (keyboard_check(vk_down)) && ! (keyboard_check(vk_up))
{agachado=true; parado=true}

if (agachado=true) && (lado==1)
{
sprite_index=spr_Char_agachado_dir ; //Agachado e Direita.
}

if (agachado=true) && (lado==0)
{
sprite_index=spr_Char_agachado_esq; //Agachado e Esquerda.
}


É isso ?
Eudes - Hyo
Eudes - Hyo

Games Ranking : Nota B

Notas recebidas : E + B+B
Data de inscrição : 02/06/2009
Reputação : 27
Número de Mensagens : 513
Prêmios : Código de movimento personagem 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

Código de movimento personagem Empty Re: Código de movimento personagem

Mensagem por Kevin Ter 02 Jun 2009, 19:12

acho que tem uma forma mais simples!!!


assim

tenta esse

if (keyboard_check(vk_down))
{agachado=true; parado=true}

if (agachado=true) && (lado==1)
{
sprite_index=spr_Char_agachado_dir ; //Agachado e Direita.
}

if (agachado=true) && (lado==0)
{
sprite_index=spr_Char_agachado_esq; //Agachado e Esquerda.
}



if (keyboard_check_released(vk_down))
{agachado=false; parado=true}

if (agachado=false) && (lado==1)
{
sprite_index=spr_Char_parado_dir ; //Parado e Direita.
}

if (agachado=false) && (lado==0)
{
sprite_index=spr_Char_parado_esq; //Parado e Esquerda.
}


* código que você mostrou!!! - editado algumas coisas apenas..
* código que reefiz!!! - editado algumas coisas para voltar ao normal!!!
* suposições de: trocas de sprite que usei... troque estes amarelos pelo sprite dele parado!!!




Bem acho que é isso... se deu ou não deu certo nos fale aqui Happy

Keké Games©️ Agradece Happy
Kevin
Kevin

Games Ranking : Nota C

Notas recebidas : C - C
Data de inscrição : 14/11/2008
Reputação : 9
Número de Mensagens : 1166
Prêmios : Código de movimento personagem Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

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

http://www.programaCODM.webs.com/

Ir para o topo Ir para baixo

Código de movimento personagem Empty Re: Código de movimento personagem

Mensagem por GAMEREVIL Qua 03 Jun 2009, 01:16

Valeu a ajuda!
.
Vou tentar aqui...
.

Ficou assim !!!
Funcionou.

Código:
//muda as sprites de acordo com a ação
if penochao = true {
//código anterior
if abaixado = false {
//código anterior
if parado = false
{
if direita = true {sprite_index = robo_andandoDR;} else {sprite_index = robo_andandoES;}
}
else
{
if direita = true {sprite_index = robo_paradoDR;} else {sprite_index = robo_paradoES;}
}
//código anterior
}
else
{
if direita = true {sprite_index = robo_abaixadoDR;} else {sprite_index = robo_abaixadoES;}
}
//código anterior
}else
{
if direita = true {sprite_index = robo_pulandoDR;} else {sprite_index = robo_pulandoES;}
}


Falta agora, olhar para cima!!! E se apertar cima (UP),o esqueda e direita tem que travar
.
GAMEREVIL
GAMEREVIL

Data de inscrição : 14/05/2009
Reputação : 0
Número de Mensagens : 11
Prêmios : Código de movimento personagem 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://gamerevil.blogspot.com/

Ir para o topo Ir para baixo

Código de movimento personagem Empty Re: Código de movimento personagem

Mensagem por Convickto Qui 22 Abr 2010, 18:30

os codigos se escrevem assim mesmo? agachado=true ou false? é agachado mesmo?
tipo para eu fazer ele andar num objeto sólido, como faz? pq meu personagem tá travando no chão, ele só se movimenta no ar, mas quando encosta no chão ele fica parado, não vai pra lado nenhum!
Resumindo :
Como colocar o personagem no chão e faze-lo andar e pular? por favor me diga o que cada código faz pra eu ir aprendendo aos poucos. valeu!
Sou noob hoje, mas eu vou aprender(*eu acho...*)
Convickto
Convickto

Data de inscrição : 21/04/2010
Reputação : 0
Número de Mensagens : 7
Prêmios : Código de movimento personagem 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://convickto.blogspot.com

Ir para o topo Ir para baixo

Código de movimento personagem Empty Re: Código de movimento personagem

Mensagem por Cainã Qui 22 Abr 2010, 19:00

As variáveis podem ser escritas do jeito que a pessoa quiser. Quanto a sua duvida, este tópico pode esclarecer e existem tutoriais e engines no forum.
Cainã
Cainã

Data de inscrição : 07/03/2010
Reputação : 1
Número de Mensagens : 1335
Prêmios : Código de movimento personagem 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://cai.na.tl/

Ir para o topo Ir para baixo

Código de movimento personagem Empty Re: Código de movimento personagem

Mensagem por Denis Lemos Qui 22 Abr 2010, 19:27

Convickto escreveu:os codigos se escrevem assim mesmo? agachado=true ou false? é agachado mesmo?
tipo para eu fazer ele andar num objeto sólido, como faz? pq meu personagem tá travando no chão, ele só se movimenta no ar, mas quando encosta no chão ele fica parado, não vai pra lado nenhum!
Resumindo :
Como colocar o personagem no chão e faze-lo andar e pular? por favor me diga o que cada código faz pra eu ir aprendendo aos poucos. valeu!
Sou noob hoje, mas eu vou aprender(*eu acho...*)
Com o tempo você vai aprender o que cada código faz, mas se você quer aprender mais ligeiro, tem que dar uma olhada nessas aulas, foi por elas que eu aprendi !

http://www.gamemakerbrasil.com/game-maker-f36/aulas-de-game-maker-para-iniciantes-por-reddragon-t3425.htm

E aqui tem mais um monte de coisa, agora é só você ler bastante que não tem como não aprender, se eu consegui você também consegue, quando eu comecei era que nem você, não sabia nem oque era uma variável, mas se esforçando se consegue aprender !
Leia principalmente as aulas que estão fixadas no topo da página !
http://www.gamemakerbrasil.com/game-maker-f36/
Denis Lemos
Denis Lemos

Data de inscrição : 17/05/2009
Reputação : 1
Número de Mensagens : 938
Prêmios : Código de movimento personagem 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
  • Unity
  • C#
  • Godot
  • C ou C++


Ir para o topo Ir para baixo

Código de movimento personagem Empty Re: Código de movimento personagem

Mensagem por Adriel Qui 22 Abr 2010, 20:00

Pessoal, tem um jeito muito mais simples. Veja bem, escreva no Event de olhar para cima :
Código:
if sprite_index=bonecoparadodireita //substitua pelo nome de sua sprite
{
sprite_index=bonecoolhandocimadireita //substitua pelo nome de sua sprite
hspeed=0
vspeed=0
}
if sprite_index=bonecoparadoesquerda //substitua pelo nome de sua sprite
{
sprite_index=bonecoolhandocimaesquerda //substitua pelo nome de sua sprite
hspeed=0
vspeed=0
}

E aí, funfou????
Se quiser saber mais coisas, basta me dizer king
Adriel
Adriel

Data de inscrição : 18/07/2009
Reputação : 2
Número de Mensagens : 924
Prêmios : Código de movimento personagem 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

Código de movimento personagem Empty È, esse reddragon é bom pra explicar!

Mensagem por Convickto Dom 25 Abr 2010, 16:20

Cainã escreveu:As variáveis podem ser escritas do jeito que a pessoa quiser. Quanto a sua duvida, este tópico pode esclarecer e existem tutoriais e engines no forum.


Valeu pela dica, realmente me esforçando bastante(e descansando pra não ficar louco) eu to entendendo como isso funciona, mas não gosto de ficar copiando e colando os códigos, eu prefiro(apesar de ser mais demorado) olhar o código e depois escrever ele, assim ele fica impregnado no meu celebro...o problema é que toda vez que começo a entender como uma coisa funciona, eu me deparo com outra mais interessante, e outra, e outra...vou tentar me focar em um unico jogo até deixa-lo o melhor possivel, mas acho que to pegando o jeito!
agradeço pela ajuda!
Convickto
Convickto

Data de inscrição : 21/04/2010
Reputação : 0
Número de Mensagens : 7
Prêmios : Código de movimento personagem 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://convickto.blogspot.com

Ir para o topo Ir para baixo

Código de movimento personagem Empty Re: Código de movimento personagem

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