Problemas com pulo diagonal
Enviado: Sáb Fev 25, 2017 7:54 pm
Estou fazendo um Protótipo de um jogo plataforma e ao testar varias vezes descobri um Bug que eu nem imagino como resolve!!
O Player meio que trava na parede, ele consegue sair mais quando você pula de jeito diagonal ele "prende" o player
IMAGEM DO BUG:
PROGRAMAÇÃO DO PLAYER
Create:
Step:
O Player meio que trava na parede, ele consegue sair mais quando você pula de jeito diagonal ele "prende" o player
IMAGEM DO BUG:
PROGRAMAÇÃO DO PLAYER
Create:
Código: Selecionar todos
/// Iniciar Variaveis
v = 4;
jump = 7;
jump_contagem = 0;
grav = 0.3;
hsp = 0;
vsp = 0;
Código: Selecionar todos
/// Movimentação e Direção
key_direita = keyboard_check(vk_right);
key_esquerda = keyboard_check(vk_left);
key_pulo = keyboard_check_pressed(vk_space);
move = key_direita - key_esquerda;
hsp = move * v;
if (vsp < 10) then vsp += grav //Limitar Gravidade e Graduação
//Duplo Pulo
if jump_contagem == 1 and key_pulo{
vsp = -jump;
jump_contagem += 1;
}
if jump_contagem == 2 and place_meeting(x,y+1,obj_wall){
jump_contagem = 0;
}
//Area de Colisão do Pulo
if (place_meeting(x,y+1,obj_wall)) and jump_contagem == 0{
vsp = key_pulo * -jump;
jump_contagem += 1;
}
//Colisão Horizontal
if (place_meeting(x+hsp,y,obj_wall)){
while (!place_meeting(x+sign(hsp),y,obj_wall))
{
x += sign(hsp);
}
hsp = 0;
}
//Colisão Vertical
if (place_meeting(x,y+vsp,obj_wall)){
while (!place_meeting(x,y+sign(vsp),obj_wall))
{
y += sign(vsp);
}
vsp = 0;
}
//Setar os Valores de Hsp e Vsp
x += hsp;
y += vsp;
//Fricção
if abs(speed) > 0
{
friction=0.03;
}
else
{
friction=0;
}