Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Kollisionsabfrage Vieleck mit Kreis (https://www.delphipraxis.net/157166-kollisionsabfrage-vieleck-mit-kreis.html)

Delphi-Narr 1. Jan 2011 12:57

Delphi-Version: 5

Kollisionsabfrage Vieleck mit Kreis
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo!
Ich möchte gerne eine Kollisionsabfrage zwischen einem Vieleck (Spielfigur) und einem Kreis machen
(Eventuell auch noch Spielfigur mit Spielfigur -> Vieleck zu Vieleck).

Ich habe mal eine Grafik des Vielecks hochgeladen. Der Punkt in der Mitte ist der Ausgangspunkt. Die Eckpunkte werden aus diesem Punkt und dem Winkel berechnet und in einem Array

Delphi-Quellcode:
Punkte:array of TPoint


gespeichert.
Die Kugeln haben unterschiedliche Radien.

Wie kann ich so eine Kollisionsabfrage durchführen, am besten auch zwischen zwei Spielfiguren, die sich treffen.

Viele Grüße und ein gutes neues Jahr!

Bummi 1. Jan 2011 16:03

AW: Kollisionsabfrage Vieleck mit Kreis
 
Exemplarisch ....

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  FigReg,CircleReg:HRGN;
begin
    Figure1[0].X := 0;
    Figure1[0].Y := 0;
    Figure1[1].X := 50;
    Figure1[1].Y := 0;
    Figure1[2].X := 50;
    Figure1[2].Y := 50;
    Figure1[3].X := 25;
    Figure1[3].Y := 75;
    Figure1[4].X := 0;
    Figure1[4].Y := 50;
    FigReg := CreatePolygonRgn(Figure1,5,WINDING);
    CircleReg := CreateEllipticRgn(30,30,100,100);
    //CircleReg := CreateEllipticRgn(80,80,100,100);
    if not (CombineRgn(FigReg,FigReg,CircleReg,RGN_AND)=NULLREGION)
     then Showmessage('Collision');
    SetWindowrgn(Panel1.Handle,FigReg,true); // Anzeige des Ergebnisses
    Deleteobject(FigReg);
    Deleteobject(CircleReg);
end;

Delphi-Narr 2. Jan 2011 10:55

AW: Kollisionsabfrage Vieleck mit Kreis
 
Danke! Klappt wunderbar! :bounce2:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz