Двигаю image opponent к image hero и проверяю касается ли край opponent середины hero
procedure TMainForm.MoveOpponentTimerTimer(Sender: TObject);
var
PosX,PosY:integer;
begin
PosX:=round(Hero.Width) div 2;
PosY:=round(Opponent.Width ) ;
IF (Opponent.Position.X + PosY) <> (Hero.Position.X + PosX ) then
begin
if (Opponent.Position.X + PosY) > (Hero.Position.X + PosX)then
Opponent.Position.X:=Opponent.Position.X - PosY * 0.01;
if (Opponent.Position.X + PosY) < (Hero.Position.X + PosX)then
Opponent.Position.X:=Opponent.Position.X + PosY * 0.01;
end
else
HPIndicator.Value:= HPIndicator.Value - 10;
end