Página 1 de 1

ERRO NA COLISÃO

Enviado: Sáb Ago 06, 2016 1:05 pm
por TootyNozert
...

Re: ERRO NA COLISÃO

Enviado: Sáb Ago 06, 2016 1:42 pm
por Adilson
não funciona como? o player cai infinitamente?
Não esqueça de marcar a caixa "solid" dos objt plataforma

Re: ERRO NA COLISÃO

Enviado: Sáb Ago 06, 2016 4:21 pm
por Superbomber
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.)

Re: ERRO NA COLISÃO

Enviado: Sáb Ago 06, 2016 9:51 pm
por TootyNozert
...

Re: ERRO NA COLISÃO

Enviado: Dom Ago 07, 2016 9:06 am
por Zalliant
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.

Re: ERRO NA COLISÃO

Enviado: Seg Set 19, 2016 2:28 pm
por Doc_McCoy
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!

Re: ERRO NA COLISÃO

Enviado: Seg Set 19, 2016 2:46 pm
por Superbomber
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.

Re: ERRO NA COLISÃO

Enviado: Ter Set 20, 2016 8:50 am
por Doc_McCoy
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!  ;)