Ola estou um problema que quando eu pulo o meu personagem trava no meio do ar e nao sei o porque?alguem poderia me ajudar? aqui esta o codigo:
step:
direita= keyboard_check(ord("D"));
esquerda= keyboard_check(ord("A"));
cima= keyboard_check(ord("W"));
hveloc= (direita - esquerda) * veloc;
if !place_meeting(x, y + 1,obj_parede){
vveloc += gravidade;
}else{
if cima{
vveloc = -16
}
if place_meeting(x + hveloc, y,obj_parede){
while !place_meeting(x + sign(hveloc), y,obj_parede){
x += sign(hveloc);
}
hveloc= 0;
}
x += hveloc;
if place_meeting(x, y + vveloc,obj_parede){
while !place_meeting(x, y + sign(vveloc),obj_parede){
y += sign(vveloc);
}
vveloc= 0;
}
y += vveloc;
}
create:
cima= 0;
gravidade= 1;
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. |
PERSONAGEM TRAVA QUANDO PULA Tópico resolvido
Re: PERSONAGEM TRAVA QUANDO PULA Tópico resolvido
Reordenei teu código:
A lógica do código não fazia sentido, estava assim:
Ou seja só se movimentaria se estivesse colidindo com a parede por baixo. Então caso posicionasse ele "no ar" na room ficaria travado e se deixasse colado no chão ele poderia até ir pra direita ou esquerda, mas assim que pulasse ou caísse iria travar.
Código: Selecionar todos
direita = keyboard_check(ord("D"));
esquerda = keyboard_check(ord("A"));
cima = keyboard_check_pressed(ord("W"));
hveloc = (direita - esquerda) * veloc;
if cima {
vveloc = -16
}
if !place_meeting(x, y + 1, obj_parede) {
vveloc += gravidade;
}
if place_meeting(x + hveloc, y,obj_parede) {
while !place_meeting(x + sign(hveloc), y, obj_parede){
x += sign(hveloc);
}
hveloc= 0;
}
x += hveloc;
if place_meeting(x, y + vveloc, obj_parede){
while !place_meeting(x, y + sign(vveloc), obj_parede){
y += sign(vveloc);
}
vveloc= 0;
}
y += vveloc;
Código: Selecionar todos
SE NÃO COLIDIR COM O 'obj_parede' POR BAIXO
APLICA GRAVIDADE
CASO COLIDIR COM O 'obj_parede' POR BAIXO
PODE PULAR SE TECLAR 'CIMA'
APLICA VELOCIDADE HORIZONTAL
APLICA VELOCIDADE VERTICAL (QUE INCLUI A GRAVIDADE)
Ou seja só se movimentaria se estivesse colidindo com a parede por baixo. Então caso posicionasse ele "no ar" na room ficaria travado e se deixasse colado no chão ele poderia até ir pra direita ou esquerda, mas assim que pulasse ou caísse iria travar.
Quem está online
Usuários navegando neste fórum: Semrush [Bot] e 2 visitantes