Hola!
Tengo un problemilla con mi pje ya que se queda pillado con la pared.

A grandes rasgos, estoy aumentando la velocidad en 1 por step cada vez que pulsas una dirección.
El problema es que a veces se queda pillado con el objeto lateral con el que colisiona para no salirse.

El problema, por ahora, lo tengo solucionado restandole (a la derecha) y sumandole (a la izquierda) el mod de 32 +4/-4.
El +4 se lo tuve que poner porque sino seguia atrancandose.
Tal como lo tengo ahora, se queda dando saltitos en los laterales y queda un poco... raro

Entiendo que se está colando porque al sumar la velocidad salta al medio de esos 32 pixeles de la barrera y se quedan colisionando todo el rato
Hay alguna forma de parar el pje al chocar o mandarlo a la posicion maxima por cada lado?

Un saludo!!


Primero crea el siguiente script:

Nombralo: move_to_contact_with

var dirn, max_dist, contact_obj, dx, dy;

dirn = argument0;
max_dist = argument1;
contact_obj = argument2;

if ( max_dist == 1 )
    {
     max_dist = 1000;
     dx = lengthdir_x( 1, dirn );
     dy = lengthdir_y( 1, dirn );
     dist = 1;
    }

while( dist <= max_dist )
    {
     if ( place_meeting( x+dx, y+dy, contact_obj ) == true )
     {
      return true;
      x = x + dx;
      y = y + dy;
      dist = dist + 1;
     }
return false;


Ahora en el evento colision con el objeto pared:

obj_jugador
Evento Colision obj_pared
x = xprevious;
y = yprevious;

move_to_contact_with( direction, -1, obj_pared );

hspeed = 0;


Se que requerira algunos ajustes adaptarlo a tu juego.
Te he adjuntado un ejemplo. Lo unico que debes tener en cuenta que yo creo un objeto parent de los que todos los  tipos de pisos y paredes.
The next best thing to knowing something,
is knowing where to find it.

Muchas gracias!

No lo entiendo muy bien, porque estoy algo pez aun en codigo GML pero esta tarde intento implementarlo a ver si consigo ponerlo :)

Bueno si se te hace complicado entonces pon tu código y aquí poco a poco te ayudamos a resolverlo.

Saludos!
The next best thing to knowing something,
is knowing where to find it.