Hmm faktycznie to jest dziwne, spróbuj użyć tego kodu:
GML
pre = x;
while(1)
{
global.copozl = collision_line(pre, y, pre-16, y, object1, 1, 1);
if( global.copozl > 0 || pre-16 < 0 )break;
pre -= 16;
}
EDIT: Możesz użyć także tego kodu http://www.gmlscripts.com/script/collision_line_first