В AStar примере для Блитза есть такая функция:
Function MoveUnit(unit.unit)
;Move the unit
xVector# = unit\xPath-unit\xLoc
yVector# = unit\yPath-unit\yLoc
angle# = ATan2(yVector#,xVector#)
xSpeed# = Cos(angle)*unit\speed
ySpeed# = Sin(angle)*unit\speed
If Abs(unit\xLoc - unit\xPath) < Abs(xSpeed)
unit\xLoc = unit\xPath
Else
unit\xLoc = unit\xLoc + xSpeed
End If
If Abs(unit\yLoc - unit\yPath) < Abs(ySpeed)
unit\yLoc = unit\yPath
Else
unit\yLoc = unit\yLoc + ySpeed
End If
End Function
Которая двигает объект по клеткам.
xPath и yPath это клетка на которую нужно передвинуться
xLoc и yLoc это клетка на которой находится объект (или наоборот. не помню уже)
unit\speed это скорость.