Buenos dias CGm tengo un problema con mi codigo de wall jump el problema es que al regresar al bloque en el cual se le hizo el wallJump ya no hace mas el wall jump hasta que toca el suelo ya se puede y ese puede ser un problema cuando se esta jugando XD el codigo que estoy usando para el wallJump es:
//WallJump
if(place_free(x, y + 1))
{
if (Jump)
{
if (Right and !Left and !place_free(x + 1, y) and wallJump = 1)
{
canMove = 0;
alarm[0] = 12;
wallJump = -1
dir = 1
vspd = -velSalto * 1.1;
}
if (Left and !Right and !place_free(x - 1, y) and wallJump = -1)
{
canMove = 0;
alarm[0] = 12;
wallJump = 1;
dir = 0
vspd = -velSalto * 1.1;
}
}
}
if (canMove = 0)
{
if (dir = 0) { hspd = spd * 2.2; }
if (dir = 1) { hspd = -spd * 2.2; }
}
//Deslizamiento paredes
if (Right && !place_free(x + 1, y) && vspd > 0)
{
vspd = 1;
}
else if (Left && !place_free(x - 1, y) && vspd > 0)
{
vspd = 1;
}
Les dejo una imagen gif del error y el editable. [https://gifs.com/gif/4RZ0BJ
Saludos
Hola ZELDA
Veo en tu código que lo que causa el error es la variable "walljump" que toma valor -1 o 1.
Con sinceridad te digo que esa variable no le entrega ninguna utilidad a tu código, si la eliminas solucionas el problema.
Al iniciar, asumo que walljump tiene valor 1, significa que puedes hacer wall jump SÓLO en la pared de la derecha, si intentas hacer en la izquierda, no funciona.
Una vez que haces el salto en la pared, walljump toma valor -1, significa que ahora SÓLO puedes hacer walljump en la pared izquierda, si intentas en la derecha no funciona.
Si eliminas la condición "& walljump =" y eliminas la asignación de la variable, ya podrás hacer walljump en ambas paredes.
Saludos
Muchas gracias era algo tan simple, XD llevaba una semana rompiendome la cabeza.
Saludos