Saludos cordiales, al saltar y desplazarme a la derecha o la izquierda, el jugador se queda en el bloque y no se desplaza posteriormente. Es algo difícil de expresar por ende en la parte inferior hay dos imagenes adjuntadas (obviamente, no se aprecia que he saltado, pero lo he efectuado previamente).
Los scripts son los siguientes:
Para el salto:
if place_free(x, y + 1)
{
gravity = 1;
}
else
{
gravity = 0;
}
if space and !place_free(x, y + spd)
{
vspeed =- 20;
}
space es una variable.
Para moverse a la derecha y a la izquierda:
if place_free(x - spd, y)
{
x = x - spd;
sprite_index = PlayerRight_spr;
image_xscale = -0.5;
image_speed = 0.2;
}
spd es una variable.
if place_free(x - Spd, y)
{
x = x - Spd;
sprite_index = PlayerRight_spr;
image_xscale = -0.5;
image_speed = 0.3;
}
Spd es una variable (esto es para correr)
if place_free(x + spd, y)
{
x = x + spd;
sprite_index = PlayerRight_spr;
image_xscale = 0.5;
image_speed = 0.2;
}
if place_free(x + Spd, y)
{
x = x + Spd;
sprite_index = PlayerRight_spr;
image_xscale = 0.5;
image_speed = 0.3;
}
Colisión contra el bloque:
move_contact_solid(270, ocho*)
gravity=0;
vspeed=0;
Estos 4 scripts los he juntado en un step step, por eso no visionáis que pulsando x sucede x.
*coloco esto para que no aparezca el emoji, no obstante, he colocado 8
Porfavor, ayuda.
Lo más probable es que la máscara de colisión (mask) es diferente en cada sprite.
Entra en las propiedades de cada sprite y modifica el mask.
Te paso un video en español que explica esto:
https://www.youtube.com/watch?v=y6Fg46uvzQ8 (https://www.youtube.com/watch?v=y6Fg46uvzQ8)
Aunque el autor del video usa GM 8, sigue siendo aplicable para GM Studio.
Otra cosa que tienes que tener en cuenta es el origen en los sprites, algo que note en tu demo es que no esta centrado. Yo por lo general lo coloco en el centro de los sprites, en los pies.