il faut que tu utilise une boucle for.
Ouvre un nouveau projet crée un sprite carré à l'arrache, crée un objet, définit le sprite (le sprite carré) puis dans un event step place ce code:
v=6
if keyboard_check(vk_left){
for(i=0;i<v;i+=1)
{
if place_free(x-1,y) x-=1
}}
if keyboard_check(vk_right){
for(i=0;i<v;i+=1)
{
if place_free(x+1,y) x+=1
}}
if keyboard_check(vk_up){
for(i=0;i<v;i+=1)
{
if place_free(x,y-1) y-=1
}}
if keyboard_check(vk_down){
for(i=0;i<v;i+=1)
{
if place_free(x,y+1) y+=1
}}
en suite crée un deuxième objet définit le même sprite (pour gagner du temps) et coche la case solide.
Place dans une room ton première objet et place un peut partout plein de deuxième objet qui vont servir de murs.
Et tu verra que la l'objet s’arrêtera pile contre le mur.
essai en suite d’adapter cette technique sur ton jeu.