Como crio um movimento, pulo e corrida com gravidade???

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

Como crio um movimento, pulo e corrida com gravidade???

Mensagem por jaapaa em Dom 18 Out 2009, 19:44

Gostaria de saber como eu crio um movimento com gravidade para fazer pulo, e também corrida após pressionar duas vezes a seta para a direita.Sendo q todos com sprite ex: apertei para direita aparece o sprite dele andando para direita, não estou pressionando nenhum botão, aparece o sprite dele parado, precionando o botão para pular aparece o sprite dele pulando, e quando cair aparecer ele parado e corrida a msm coisa.

obs: De preferencia sem usar códigos, mas se tiver de códigos tb serve mas de preferencia sem.


Agradeço desde ja ! Very Happy

jaapaa

Número de Mensagens : 20
Idade : 26
Data de inscrição : 15/10/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como crio um movimento, pulo e corrida com gravidade???

Mensagem por Convidad em Dom 18 Out 2009, 20:34

Amigo, acredito que na categoria "Engines" da página principal, tenha o que você busca fazer. Lá você vai encontrar muitos exemplos com o código fonte aberto, de jogos de plataforma com aceleração, pulo, nado, corrida, etc.

Dê uma pesquizadinha por lá e boa sorte!

Abraços.
Capitão Commando.

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Como crio um movimento, pulo e corrida com gravidade???

Mensagem por CPinheiro em Dom 18 Out 2009, 20:37

Gravidade: (Step)
Código:

if place_free(x,y+1) //Checa se um pixel abaixo do personagem está livre
gravity = 0.5; //Essa é uma variável que controla a gravidade do objeto. Normalmente, é usado valores entre 0 e 1. 0.5 é um bom número.
else //Se NÃO estiver...
gravity = 0; //Zera a gravidade.
Pulo: (Step)
Código:

if keyboard_check(vk_up) //A função keyboard_check serve para checar se uma tecla foi pressionada. vk_up se refere à seta pra cima.
{ //Abre as chaves. O código que será executado caso o jogador aperta a seta pra cima deve ficar dentro dessas chaves.
if not place_free(x,y+1) //Agora, eu uso a função place_free. Ela serve para checar se um local está livre. No caso, checamos o x do jogador, e o y do jogador +1. O Not serve para negar. Ou seja, leia isso como se NÃO estiver livre no x e y+1 no jogador.
{ //Abre outra chave
vspeed = -5; //Faz a velocidade vertical no jogador virar -5. Ou seja, faz ele subir. Quanto menor o número (-6,-7,-8, etc...) mais ele sobe. Quanto maior, menos ele sobe. Se o valor for positivo, isso irá fazer ele descer.
} //Fecha a chave do place_free.
} //Fecha a chave do keyboard_check.

Movimento: (Step)
Código:

if keyboard_check(vk_left) and place_free(x-4,y) //Checa se a tecla seta para a esquerda foi apertada E se o x do personagem - 4 pixels está livre.
{ //Abre a chave
x -= 4; //Se as condições acima forem verdadeiras, ou seja, apertar a tecla seta pra esquerda e a esquerda do personagem estiver livre, faz ele andar um pouco para a esquerda, diminuindo 4 pixels.
sprite_index = spr_andando; //A variável sprite_index, padrão do GM, serve para indicar o sprite atual do objeto.
image_xscale = -1; //Seta a variável image_xscale para -1, fazendo o sprite virar para a esquerda.
} //Fecha as chaves

if keyboard_check(vk_right) and place_free(x+4,y) //Checa se a tecla seta para a direita foi apertada E se o x do personagem + 4 pixels está livre.
{ //Abre a chave
x += 4; //Se as condições acima forem verdadeiras, ou seja, apertar a tecla seta pra direita e a direita do personagem estiver livre, faz ele andar um pouco para a direita, aumentando 4 pixels.
sprite_index = spr_andando; //A variável sprite_index, padrão do GM, serve para indicar o sprite atual do objeto.
image_xscale = 1; //Seta a variável image_xscale para 1, fazendo o sprite virar para a direita.
} //Fecha as chaves

if not keyboard_check(vk_left) and not keyboard_check(vk_right) //Checa se tanto a tecla esquerda como a direita NÃO estão sendo pressionadas.
{ //Abre a chave.
sprite_index = spr_parado; //Muda de sprite.
} //Fecha a chave.


Última edição por CPinheiro em Dom 18 Out 2009, 22:41, editado 1 vez(es)

CPinheiro

Número de Mensagens : 1015
Idade : 20
Data de inscrição : 01/06/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://supermariobrasileiro.blogspot.com

Voltar ao Topo Ir em baixo

Re: Como crio um movimento, pulo e corrida com gravidade???

Mensagem por jaapaa em Dom 18 Out 2009, 22:01

Desculpe mas essa opção acima ta dando mt bug.
obs: não mudei nd...criei td do jeito q esta ai
Very Happy

jaapaa

Número de Mensagens : 20
Idade : 26
Data de inscrição : 15/10/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como crio um movimento, pulo e corrida com gravidade???

Mensagem por CPinheiro em Dom 18 Out 2009, 22:39

jaapaa escreveu:Desculpe mas essa opção acima ta dando mt bug.
obs: não mudei nd...criei td do jeito q esta ai
Very Happy

Olha, aquilo foi o básico. Pra deixar sem bugs, você deverá modificar o código de acordo com o seu projeto.
Sem falar que não adianta em nada falar que está dando bug. Tente explicar melhor o que está acontecendo, para que possamos te ajudar.

Eu fiz o código meio sem atenção mesmo, teve uma coisinha na gravidade que esqueci de fazer, mas acho que o básico deve estar funcionando. Btw, mudei uma coisa no código.

CPinheiro

Número de Mensagens : 1015
Idade : 20
Data de inscrição : 01/06/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://supermariobrasileiro.blogspot.com

Voltar ao Topo Ir em baixo

Re: Como crio um movimento, pulo e corrida com gravidade???

Mensagem por Conteúdo patrocinado Hoje à(s) 08:33


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