Entrar
Últimos assuntos
» Servidor de Discord do fórum?por Super Games Hoje à(s) 01:27
» Problemas com a caixa de diálogo, ela é pequena e as letras não cabem dentro
por Rukasu777 Qui 16 maio 2024, 18:10
» Problemas com particulas
por RastaMaan Dom 12 maio 2024, 17:03
» Problema ao entrar por uma porta e voltar por ela
por aminaro Seg 06 maio 2024, 10:08
» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43
» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16
» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45
» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18
» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30
» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07
» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45
» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51
» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31
» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11
» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17
» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18
» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34
» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13
» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12
» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02
» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55
» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42
Pulo "travado"
3 participantes
Página 1 de 1
Pulo "travado"
Primeiramente, Olá. Sou novo no forum e no GM.
Minha duvida é sobre o pulo. Eu não sei como fazer um pulo travado (como os jogos antigos eram). Consiste em pular sem poder alterar a trajetória do pulo, ou seja, o pulo já tem a altura e trajetória programada não sendo possivel alterar durante o pulo. Claro que sem por uma direção o personagem pula apenas pra cima.
Alguém sabe?
(procurei antes de postar se já tiver o post sobre isso por favor esfreguem em minha cara)
Minha duvida é sobre o pulo. Eu não sei como fazer um pulo travado (como os jogos antigos eram). Consiste em pular sem poder alterar a trajetória do pulo, ou seja, o pulo já tem a altura e trajetória programada não sendo possivel alterar durante o pulo. Claro que sem por uma direção o personagem pula apenas pra cima.
Alguém sabe?
(procurei antes de postar se já tiver o post sobre isso por favor esfreguem em minha cara)
Fredo- Data de inscrição : 13/07/2010
Reputação : 0
Número de Mensagens : 5
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Pulo "travado"
Movido.
Hmm, suponho que para o movimento, você está usando o hspeed/vspeed certo?
Nesse caso, a idéia seria a seguinte:
create:
Faça todo o código de movimento horizontal que você tem ai, só executar SE pulando for FALSE!
Assim:
No código de pular, você adiciona
E no código de quando ele cai no chão, adiciona o seguinte:
Acredito que funcione!
Hmm, suponho que para o movimento, você está usando o hspeed/vspeed certo?
Nesse caso, a idéia seria a seguinte:
create:
- Código:
pulando = false;
Faça todo o código de movimento horizontal que você tem ai, só executar SE pulando for FALSE!
Assim:
- Código:
if !pulando
{
//movimento HORIZONTAL
}
No código de pular, você adiciona
- Código:
pulando = true;
hspeed = sign(hspeed)*6; //6 = força do pulo HORIZONTAL
vspeed = -6; //Força do pulo VERTICAL
E no código de quando ele cai no chão, adiciona o seguinte:
- Código:
pulando = false;
Acredito que funcione!
Janx- Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios :
x 0 x 0 x 0
x 0 x 2 x 0
x 0 x 0 x 0
Re: Pulo "travado"
Janx escreveu:Movido.
Hmm, suponho que para o movimento, você está usando o hspeed/vspeed certo?
Não sei o porque de você ter suposto isso. Eu estou usando o movimento do char da forma mais primitiva possivel, pois não sei outra forma:
- Código:
if keyboard_check(vk_right)
{
if place_free(x+3,y){x+=3}
sprite_index=spr_brutos_walk_right
}
if keyboard_check_released (vk_right) and sprite_index=spr_brutos_walk_right
sprite_index=spr_brutos_stand_right
if keyboard_check(vk_left)
{
if place_free(x-3,y){x-=3}
sprite_index=spr_brutos_walk_left
}
if keyboard_check_released (vk_left) and sprite_index=spr_brutos_walk_left
sprite_index=spr_brutos_stand_left
Não estou usando H/Vspeed, por esse motivo seu codigo não funfou
Fredo- Data de inscrição : 13/07/2010
Reputação : 0
Número de Mensagens : 5
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Pulo "travado"
Primeiramente, bem-vindo ao fórum
---
Então, dá para fazer mais ou menos do jeito que o Janx falou, mas, em vez de usar o hspeed, testar se a variável pulando é true, e se for, mover o personagem do jeito que você está fazendo (x += 3).
Assim:
Create:
pulando = false;
movendo = false; // Variável para saber se a criatura está pulando para o lado ou em linha reta para cima
Creio que esse seu código está no step:
if (!pulando) // O mesmo que "pulando == false"
{
if keyboard_check(vk_right)
{
if place_free(x+3,y){x+=3}
sprite_index=spr_brutos_walk_right
}
if keyboard_check_released (vk_right) and sprite_index=spr_brutos_walk_right
sprite_index=spr_brutos_stand_right
if keyboard_check(vk_left)
{
if place_free(x-3,y){x-=3}
sprite_index=spr_brutos_walk_left
}
if keyboard_check_released (vk_left) and sprite_index=spr_brutos_walk_left
sprite_index=spr_brutos_stand_left
}
else // Caso estiver pulando
{
if (movendo) // Se estiver se movendo
if (/* teste aqui se está virado para a direita */) // Se estiver pulando para a direita
x += 3;
else // Se estiver pulando para a esquerda
x -= 3;
}
No evento em que faz ele pular:
// Código para pular (Não sei qual você está usando, se é que já fez algum)
pulando = true;
if (keyboard_check(vk_right) || keyboard_check(vk_left)) // Se estiver segurando tecla direita ou esquerda
movendo = true;
E, no evento em que o personagem cai no chão:
pulando = false;
---
Então, dá para fazer mais ou menos do jeito que o Janx falou, mas, em vez de usar o hspeed, testar se a variável pulando é true, e se for, mover o personagem do jeito que você está fazendo (x += 3).
Assim:
Create:
movendo = false; // Variável para saber se a criatura está pulando para o lado ou em linha reta para cima
Creio que esse seu código está no step:
{
if keyboard_check(vk_right)
{
if place_free(x+3,y){x+=3}
sprite_index=spr_brutos_walk_right
}
if keyboard_check_released (vk_right) and sprite_index=spr_brutos_walk_right
sprite_index=spr_brutos_stand_right
if keyboard_check(vk_left)
{
if place_free(x-3,y){x-=3}
sprite_index=spr_brutos_walk_left
}
if keyboard_check_released (vk_left) and sprite_index=spr_brutos_walk_left
sprite_index=spr_brutos_stand_left
}
else // Caso estiver pulando
{
if (movendo) // Se estiver se movendo
if (/* teste aqui se está virado para a direita */) // Se estiver pulando para a direita
x += 3;
else // Se estiver pulando para a esquerda
x -= 3;
}
No evento em que faz ele pular:
pulando = true;
if (keyboard_check(vk_right) || keyboard_check(vk_left)) // Se estiver segurando tecla direita ou esquerda
movendo = true;
E, no evento em que o personagem cai no chão:
Igor KinGamer- Data de inscrição : 26/09/2008
Reputação : 11
Número de Mensagens : 890
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Pulo "travado"
Bem, eu fiz tudo aí, a unica coisa que meu personagem fez foi andar pra frente de moonwalk (deslizando)
se quizer eu ponho meu projeto pra download pra ficar mais facil de visualizar
se quizer eu ponho meu projeto pra download pra ficar mais facil de visualizar
Fredo- Data de inscrição : 13/07/2010
Reputação : 0
Número de Mensagens : 5
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Pulo "travado"
Você programou o pulo dele? Nesses códigos que postei, eu coloquei:
Ali, na parte "// Código para pular (Não sei qual você está usando, se é que já fez algum)" é onde tem que ir o código para ele pular, se você não fez nenhum é claro que ele não vai pular u.u
Se você realmente não o fez, procure algum tutorial de plataforma aqui no fórum para saber como fazer.
Mas, se você já fez e não está funcionando, então poste o seu projeto aqui.
PS.: Eu arrumei algumas coisas no código que postei antes:
Step:
if (!pulando)
{
if keyboard_check(vk_right)
{
if place_free(x+3,y){x+=3}
sprite_index=spr_brutos_walk_right
}
if keyboard_check_released (vk_right) and sprite_index=spr_brutos_walk_right
sprite_index=spr_brutos_stand_right
if keyboard_check(vk_left)
{
if place_free(x-3,y){x-=3}
sprite_index=spr_brutos_walk_left
}
if keyboard_check_released (vk_left) and sprite_index=spr_brutos_walk_left
sprite_index=spr_brutos_stand_left
}
else // Caso estiver pulando
{
if (movendo) // Se estiver se movendo
if (/* teste aqui se está virado para a direita */) // Se estiver pulando para a direita
{
if place_free(x+3,y)
x += 3;
}
else // Se estiver pulando para a esquerda
{
if place_free(x-3,y)
x -= 3;
}
}
if keyboard_check_released(vk_right) || keyboard_check_released(vk_left)
movendo = false;
Igor KinGamer escreveu:No evento em que faz ele pular:// Código para pular (Não sei qual você está usando, se é que já fez algum)
pulando = true;
if (keyboard_check(vk_right) || keyboard_check(vk_left)) // Se estiver segurando tecla direita ou esquerda
movendo = true;
Ali, na parte "// Código para pular (Não sei qual você está usando, se é que já fez algum)" é onde tem que ir o código para ele pular, se você não fez nenhum é claro que ele não vai pular u.u
Se você realmente não o fez, procure algum tutorial de plataforma aqui no fórum para saber como fazer.
Mas, se você já fez e não está funcionando, então poste o seu projeto aqui.
PS.: Eu arrumei algumas coisas no código que postei antes:
Step:
{
if keyboard_check(vk_right)
{
if place_free(x+3,y){x+=3}
sprite_index=spr_brutos_walk_right
}
if keyboard_check_released (vk_right) and sprite_index=spr_brutos_walk_right
sprite_index=spr_brutos_stand_right
if keyboard_check(vk_left)
{
if place_free(x-3,y){x-=3}
sprite_index=spr_brutos_walk_left
}
if keyboard_check_released (vk_left) and sprite_index=spr_brutos_walk_left
sprite_index=spr_brutos_stand_left
}
else // Caso estiver pulando
{
if (movendo) // Se estiver se movendo
if (/* teste aqui se está virado para a direita */) // Se estiver pulando para a direita
{
if place_free(x+3,y)
x += 3;
}
else // Se estiver pulando para a esquerda
{
if place_free(x-3,y)
x -= 3;
}
}
if keyboard_check_released(vk_right) || keyboard_check_released(vk_left)
movendo = false;
Igor KinGamer- Data de inscrição : 26/09/2008
Reputação : 11
Número de Mensagens : 890
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Pulo "travado"
eu tentei pro h/vspeed:
mas mesmo assim o pulo não ficou travado, dá pra mudar a pequena trajetória e a velocidade do pulo ficou muito acelerada.
eu queria que ele executasse o pulo de forma mais lenta e travada :|
e por alguma razão ele fica travado na parte horizontal dos blocos.
- Código:
if (keyboard_check_pressed(ord('Z'))) and pulando = false
{if!place_free(x,y+2)
{vspeed=-20}
if sprite_index=spr_brutos_walk_right
hspeed=2
if sprite_index=spr_brutos_walk_left
hspeed=-2
if sprite_index=spr_brutos_stand_right or sprite_index=spr_brutos_stand_left
{vspeed=-20}
}
if (keyboard_check(vk_right) || keyboard_check(vk_left)) // Se estiver segurando tecla direita ou esquerda
{movendo = true;
}
mas mesmo assim o pulo não ficou travado, dá pra mudar a pequena trajetória e a velocidade do pulo ficou muito acelerada.
eu queria que ele executasse o pulo de forma mais lenta e travada :|
e por alguma razão ele fica travado na parte horizontal dos blocos.
Fredo- Data de inscrição : 13/07/2010
Reputação : 0
Número de Mensagens : 5
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Pulo "travado"
Trava pois você não checa se tem obstaculo na frente antes de mover!
Para deixar o pulo mais suave, tente diminuir a força da gravidade!
Quanto você usa?
Tente usar
gravity = 0.3;
E velocidade vertical do pulo -7. (-20 vai ser um pulo gigante..)
- Código:
if (keyboard_check_pressed(ord('Z'))) and pulando = false
{if!place_free(x,y+2)
{vspeed = -20}
if sprite_index=spr_brutos_walk_right && place_free(x+2,y)
{hspeed = 2}
else if sprite_index=spr_brutos_walk_left && place_free(x-2,y)
{hspeed = -2}
else{hspeed = 0;} //Parar se tiver obstaculo
if sprite_index=spr_brutos_stand_right or sprite_index=spr_brutos_stand_left
{vspeed=-20}
}
if (keyboard_check(vk_right) || keyboard_check(vk_left)) // Se estiver segurando tecla direita ou esquerda
{movendo = true;}
Para deixar o pulo mais suave, tente diminuir a força da gravidade!
Quanto você usa?
Tente usar
gravity = 0.3;
E velocidade vertical do pulo -7. (-20 vai ser um pulo gigante..)
Janx- Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios :
x 0 x 0 x 0
x 0 x 2 x 0
x 0 x 0 x 0
Re: Pulo "travado"
Sim de fato o pulo ficou suave. Porém continua um pulo livre (sem a trajetória travada) e continua travando na parede
Fredo- Data de inscrição : 13/07/2010
Reputação : 0
Número de Mensagens : 5
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» como faço pro som do pulo não tocar quando eu estou no ar caindo do pulo
» Background travado
» Sistema travado
» Movimento travado
» Objeto travado parede
» Background travado
» Sistema travado
» Movimento travado
» Objeto travado parede
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|