Для начала надо решить - будет ли существо обладать инерцией, или оно движется в сильно вязкой среде.
Для вязкой среды всё просто:
- вычисляем вектор до еды: { X_еды-X_существа, Y_еды-Y_существа }
- вычисляем длину этого вектора по теореме Пифагора;
- если длина вектора больше, чем шаг_существа - делим каждую компоненту этого вектора на его длину и умножаем на размер_шага_существа (иногда шаг_существа вычисляется по количеству времени после прошлой итерации);
- а если длина вектора меньше, чем шаг_существа - то оставляем вектор как есть;
прибавляем к координатам_существа модифицированный (или не модифицированный) вектор.
С инерцией всё сложно, т.к. ускорение существа обычно сильно зависит от направления и скорости. Характер движения - зависит от того, какой у существа нрав.
Например, существо может ускоряться в сторону еды, когда еда далеко, и тормозить, когда еда близко.
А бывает так, что для поворота - существо должно остановиться, развернуться и потом бежать к еде.
Ну и понятно, что если существо бежит к еде на максимальной скорости - то оно ускориться сильнее уже не может.