Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

ERRO NA COLISÃO

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
TootyNozert
Novato
Novato
Reações: 0
Mensagens: 3

ERRO NA COLISÃO

Mensagem por TootyNozert » Sáb Ago 06, 2016 1:05 pm

...
Editado pela última vez por TootyNozert em Ter Jun 19, 2018 7:15 pm, em um total de 2 vezes.

Avatar do usuário
Adilson
Membro
Membro
Reações: 0
Mensagens: 114
Localização: Curitiba Parana

Re: ERRO NA COLISÃO

Mensagem por Adilson » Sáb Ago 06, 2016 1:42 pm

não funciona como? o player cai infinitamente?
Não esqueça de marcar a caixa "solid" dos objt plataforma
Vlw, Flw !!

Avatar do usuário
Superbomber
Programador
Programador
Reações: 0
Mensagens: 283
Localização: Natal-RN

Re: ERRO NA COLISÃO

Mensagem por Superbomber » Sáb Ago 06, 2016 4:21 pm

Esse codigo esta errado. Você não está usando hspeed e vspeed para mover. Então esses ifs não estão certos.

Outra coisa, o valor de gravity deve ser definido para 0 quando houver uma plataforma abaixo dele.

E por fim, PLACE_free() só verifica colisão com objetos solidos, logo tera que definir os objetos que seu player deve colidir como solidos.(a caixa de marcação no canto esquerdo la no objeto)

Tente um código como:

Código: Selecionar todos

if(place_meeting(obj_plataforma, x, y+1)){
   gravity = 0;
} else {
   gravity 0.5;
}

repeat(5){
 if(place_free(x+1, y) && keyboard_check(vk_right)){
  x += 1;
 } else if(place_free(x-1, y) && keyboard_check(vk_left)){
  x -= 1;
 }
 if(place_free(x, y+1) && keyboard_check(vk_down)){
  y += 1;
 } else if(place_free(x, y-1) && keyboard_check(vk_up)){
  y -= 1;
 }
}
E nada de copiar e colar, estude o codigo e veja como funciona. ;D
(Alem disso, esrou em um tablet pode haver erros.)
Entrem neste link com o JavaScript desabilitado e vejam a mágica: https://tgmbrasil.com.br/?PageSpeed=n0script

Avatar do usuário
TootyNozert
Novato
Novato
Reações: 0
Mensagens: 3

Re: ERRO NA COLISÃO

Mensagem por TootyNozert » Sáb Ago 06, 2016 9:51 pm

...
Editado pela última vez por TootyNozert em Ter Jun 19, 2018 7:16 pm, em um total de 2 vezes.

Avatar do usuário
Zalliant
Programador
Programador
Reações: 0
Mensagens: 52

Contato:

Re: ERRO NA COLISÃO

Mensagem por Zalliant » Dom Ago 07, 2016 9:06 am

Bom dia Tooty
Da uma olhada nessa simples engine vai resolver o seu problema, eu refiz esse código de gravidade.
*Retirei o place_meeting do código.
https://www.dropbox.com/s/g9t9dr8bbba5yyd/colisao.gmk?dl=0

Atenciosamente,
Wendryos G.

Avatar do usuário
Doc_McCoy
Novato
Novato
Reações: 0
Mensagens: 9

Re: ERRO NA COLISÃO

Mensagem por Doc_McCoy » Seg Set 19, 2016 2:28 pm

Boa tarde a todos
Sou novo por aqui, e estava dando uma olhada nas respostas aqui apresentadas e me ocorreu uma dúvida:

Por que foi utilizado o comando "repeat(5)" logo antes dos comandos de movimento?
o Step já não repete o código todo a cada frame do jogo?

Desde já agradeço!

Avatar do usuário
Superbomber
Programador
Programador
Reações: 0
Mensagens: 283
Localização: Natal-RN

Re: ERRO NA COLISÃO

Mensagem por Superbomber » Seg Set 19, 2016 2:46 pm

Olá Doc, este é um principio simples que aprendi com o Willy(Membro do fórum, ex-administrador).

Perceba que no repeat ele verifica a colisão a frente e só move se não tiver nenhum objeto a frente.
Movendo-se 1 por 1, não existe o perigo de entrar dentro de uma parede(ou qualquer outro objeto sólido) ou parar antes de "encostar" nela.

Repetindo cinco vezes, no final o efeito é o mesmo de x += 5 mas sem riscos de bug.

Veja a engine de movimento limpo do Willy.
Entrem neste link com o JavaScript desabilitado e vejam a mágica: https://tgmbrasil.com.br/?PageSpeed=n0script

Avatar do usuário
Doc_McCoy
Novato
Novato
Reações: 0
Mensagens: 9

Re: ERRO NA COLISÃO

Mensagem por Doc_McCoy » Ter Set 20, 2016 8:50 am

Hmmm, que interessante! Muito obrigado pela explicação! Darei uma olhada nessa engine do Willy (aliás, a página do link está um pouco bugada aqui).

Mas obrigado de qualquer maneira Superbomber!  ;)

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes