Antes de nada pido disculpa si esto que voy a preguntar ya se ha respondido en otros temas,he buscado en el foro sobre colisiones pero no he encontrado nada que sea sencillo de usar para mi problema.

El problema que tengo le habra pasado a todo el mundo,estoy intentando diseñar en gamemaker 8 un juego topdownshooter y el problema es que cuando el personaje colisiona con las paredes se queda pillado en algun punto de la pared.

El personaje se mueve con la teclas y la imagen rota con el movimiento del raton,solo tengo un sprite sin animacion.He cambiado la mascara de colision a distintas formas y la que mejor va es la circular pero tiene ese pequeño fallo.

Tambien probe a utilizar la pestaña de mascara de colision que trae el objeto pero me va peor y como nunca lo he utilizado pues no tengo ni idea de como funciona.

Me gustaria una solucion simple si la hay,porque no soy muy bueno con el codigo.

Pongo mi codigo de movimiento por si hace falta :

     if(place_free(x-velocidad,y)){
    x -= velocidad
}

Este es para el movimiento de la izquierda,los otros son iguales.Saludos

Me parece que el problema es que estas girando la mascara de colision, supongo que estas usando algo como image_angle=point_direction(x,y,mouse_x,mouse_y)
Lo que deberias hacer es crear una variable para controlar el angulo del sprite y usar esa variable cuando dibujes el sprite
[gml]
///CREATE
angulo=0

///STEP
angulo=point_direction(x,y,mouse_x,mouse_y)

///DRAW
draw_sprite_ext(sprite,subimg,x,y,xscale,yscale,  angulo  ,color,alpha)
[/gml]

Si!,estoy utilizando el image_angle.

Voy aprobar ese codigo que me has puesto ,haber si se soluciona.Gracias  3dgeminis