Если у тебя блоки в виде треугольников, и получается ровная наклонная под 45 градусов (как на твоем рисунке) попробуй примерно такой код в степ:
Code
if !place_meeting(x+3,y+3,obj_пол) then
{
x += 3;
y -= 3;
}
else
{
if !place_meeting(x-3,y-3,obj_пол) then
{
x -= 3;
y -= 3;
}
}
3 - скорость с которой объект будет скользить (скорость по х, по диагонали будет немного больше). у-=3, наверное, можно не писать.
Чтобы он именно катился - можешь просто сделать анимацию и менять ее скорость в зависимости от скорости движения (скорость движения по диагонали можно вічислить как сумму двух векторов: скорость по х и скорость по у), или, как предложили выше, менять угол поворота (лучше тоже привязать к скорости, если она у тебя будет меняться в игре)