widocznie coś gdzieś źle sprawdzasz, więcej bym Ci powiedział jak bym widział projekt
gdzieś był taki przykład, teraz go znaleźć nie mogę.
ale to było coś na wzór tego:
GML
if place_meeting(x + 24,y,block) right = true
if place_meeting(x - 24,y,block) left = true
if place_meeting(x,y + 24 ,block) down = true
if place_meeting(x,y - 24 ,block) up = true
if ( right && not left && not up && not down ) image_index = 0
if ( not right && left && not up && not down ) image_index = 1
if ( not right && not left && up && not down ) image_index = 2
if ( not right && not left && not up && down ) image_index = 3
spróbuj, chyba prostsze i czytelniejsze :)