Ну и как на счет проблемы.
Код:
Var
R: TRect;
...
if IntersectRect(R, Image1.BoundsRect, Image2.BoundsRect)
then ShowMessage('Collision')
Не получится потому что персонаж может находится по середине стены. Если его скорость +1 тогда нет а если скорость +5 px и стена расположена на 4, 0 px