Herzlich willkommen in der Delphi-PRAXiS, Doomguard.
Ich habe keine Ahnung von Computerspielen, aber ich stelle mir vor, dass es mitunter angenehm sein könnte, wenn ein Objekt (Geldschein) von einem Akteur auch im Vorübergehen eingesackt werden kann.
Delphi-Quellcode:
uses
ExtCtrls,
Types;
function Interact(imgActor, imgObject: TImage; range: Integer): Boolean;
var
r, rActor, rObject: TRect;
begin
rActor := imgActor.BoundsRect;
InflateRect(rActor, range, range);
Result := IntersectRect(r, rActor, imgObject.BoundsRect);
end;
Ist range 0, dann muss mindestens eine Berührung statt finden. Mit range = 10 reicht eine Annäherung auf 10 Pixel. Etwas unrealistisch ist der Ansatz, weil die Images rechteckig sind, aber sind die Images klein, dann ist das sicher in Ordnung. Bei größeren Images wird man wohl besser mit Region anstelle von Rect arbeiten.
Freundliche Grüße vom marabu