Sind Icon1 und Icon2
TImage
s?
Irgendwie so?
Delphi-Quellcode:
function Collides(Obj1, Obj2: TControl): Boolean;
begin
Result := ((Obj1.Top in [Obj2.Top .. Obj2.Top + Obj2.Height-1]) and
(Obj1.Left in [Obj2.Left .. Obj2.Left + Obj2.Width-1])) or
((Obj2.Top in [Obj1.Top .. Obj1.Top + Obj1.Height-1]) and
(Obj2.Left in [Obj1.Left .. Obj1.Left + Obj1.Width-1]));
end;
Dir ist aber schon klar das ein Pacman rund ist oder
Fehlt da nicht was?
Sin, Cos, Tan, PI wären dann Voraussetzung da man hier nicht vom TRect ausgehen kann sondern vom Mittelpunkt jedes einzelnen Objects die Kollision berechnen muss.
gruss
Wieso postest du sie dann nicht einfach? Insbesondere da die Geister eine andere aber bedeutende Kontur haben und der PacMan mit geöffnetem Mund ja auch nicht immer kollidiert (siehe Bild), reichen die von dir genannten Mittel nicht. Eigentlich müsste man es dann Pixel für Pixel machen, wobei dies auch noch vom Datentyp des Bildes abhängt, ob man auf Canvas zugreifen kann (TBitmap, TPNGImage) oder nicht (TIcon) und wie die Alphadaten gespeichert sind. Oder man erstellt sich eine Bitmap und zeichnet auf deren Canvas beide Icons und schaut, ob die Canvas einfarbig ist. Möchte man das? OP ist offensichtlich Anfänger und ist froh, den Quelltext von mir zu verstehen, was mit ein bisschen Mengenlehre drin sein könnte.