Вот как я делал изометрию, может интересно. Код BMax:
Главный цикл прорисовки:
For i=0 To mapWidth
For j=0 To mapHeight
DrawImage tile,(j-i)*(tileWidth/2),(i+j)*(tileHeight/2)
Next
Next
Функция для вычисления X координаты тайла:
Function IsoX(x,y)
out = Int(((2*y-x)/tileWidth))
return out
End function
Функция для вычисления Y координаты тайла:
Function IsoY(x,y)
out = Int(((x+2*y)/tileWidth))
return out
End function
Начало координат расположено в самом верхнем тайле.