quiero hacer un juego pero necesito hacer un movimiento que no se como hacer para hacer esto:

Para esquivar las plataformas tienes que moverte a los lados, si te mueves a los lados cuando pegues con la pared horizontalmente, porque si pegas verticalmente te mueres, devuelve la velocidad pero menor, todo bien todo eso lo se hacer pero quiero de que cuando la coordenada X sea la inicial se quede en hspeed = 0 pero que pueda moverse, aca esto es lo que tengo hasta ahora.

if(keyboard_check_pressed(vk_left) && moverse == true)
{
    hspeed = -spd;
    moverse = false
}
if(keyboard_check_pressed(vk_right) && moverse == true)
{
    hspeed = spd;
    moverse = false
}

if(place_meeting(x-4,y,obj_wall))
{
    hspeed = returnspd;
}
if(place_meeting(x+4,y,obj_wall))
{
    hspeed = -returnspd;
}


Solo me falta lo que dije de que si queda en su coordenada inicial que es como en el medio que alli debe parar y le das a un boton denuevo para ir a un lado y esquivarlo, ayudenme pls.