Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   "kenntbeziehung" zur laufzeit ?! (https://www.delphipraxis.net/111104-kenntbeziehung-zur-laufzeit.html)

Kytrix 29. Mär 2008 16:36


"kenntbeziehung" zur laufzeit ?!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi ich versuche es irgendwie zu schaffen das die grünen und roten Kreise die rechteckigen Felder "kennen" sodass sie wissen wann sie sich auf ihnen befinden.

Das Problem ist das die Shapes alle zur laufzeit erstellt werden und die Positionen der Shapes auf dem Fenster per Random zugeteilt werden.

[edit=Matze]Bild angehängt. Die Imageshack-Server sind einfach dermaßen langsam, das möchte man keinem zumuten müssen. MfG, Matze[/edit]

Nikolas 29. Mär 2008 16:45

Re: "kenntbeziehung" zur laufzeit ?!
 
Und wo liegt das Problem? Du hast doch die Koordinaten von den rechtecken und die Position der Kreise. Jetzt musst du nur noch schauen, ob der Mittelpunkt eines Kreises weniger als ein Kreisradius an so einem Rechteck entfernt ist und du hast schon mal eine recht gute Lösung gefunden.

Alternativ: nimm eine weiße Oberfläche, male die Rechtecke grau rein und addiere das Bild der Kreise rein. Dann musst du nur noch nach Pixeln mit der Summenfarbe suchen und hast schon eine pixelgenaue Kollisionsabfrage.

Und sowas nennt sich nicht 'kenntbeziehung' sondern Kollisionsabfrage :wall:

DP-Maintenance 29. Mär 2008 17:07

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Multimedia" verschoben.
Delphi-Frage

Kytrix 29. Mär 2008 17:09

Re: "kenntbeziehung" zur laufzeit ?!
 
Also pass mal auf die Shapes sollen nicht kollidieren !

Die Kugeln sollen wissen wenn sie sich auf der FLÄCHE der recheckigen Shapes befinden also einen Permanenten Vergleich mit ihren Koordinaten und der FLÄCHE der Rechecke .

Fussball-Robby 29. Mär 2008 17:25

Re: "kenntbeziehung" zur laufzeit ?!
 
Kennst du denn die Koordinaten & die Größe der Kugeln und der Shapes?

Neutral General 29. Mär 2008 17:27

Re: "kenntbeziehung" zur laufzeit ?!
 
Hi,

Kollidieren heißt nicht "abprallen" oder "dagegenlaufen" sondern eine A kollidiert mit B wenn A, B irgendwo berührt. Also wenn A, B schneidet dann kollidiert A mit B oder andersrum.

Also ist das was Nikolas dir vorgeschlagen hat genau das richtige ;)

Gruß
Neutral General

Nikolas 29. Mär 2008 18:17

Re: "kenntbeziehung" zur laufzeit ?!
 
Wenn du also die Rechtecke nicht drehen willst, so dass sie immer parallel zu den Achsen liegen, ist die Abfrage trivial:
Delphi-Quellcode:
if ((ball.x+radius)>rechteck.links) and ( (ball.x-radius)<rechteck.rechts) and
   (das gleiche vertikal) then KOLLISION();
Wenn du dir das aufzeichnest, wirst du sehen, dass diese Lösung nur eine Näherung ist, du in den Ecken also einen Fehler von ein paar Pixeln machst. Wenn du kleine Kugeln hast, dürfte das nicht allzu schlimm sein, sonst musst du da noch eine besondere Erkennung machen.

Wenn du das mit den Farben machst, wirds wirklich exakt, aber auch etwas langsamer.

// So dürften die Klammern passen. Glaub ich. Kennt jemand Scheme?
/* doch nicht. vielleicht aber jetzt */

DeddyH 29. Mär 2008 18:20

Re: "kenntbeziehung" zur laufzeit ?!
 
Du brauchst nur ein paar Klammern mehr als in dem Beispiel von Nikolas ;)

Neutral General 29. Mär 2008 18:23

Re: "kenntbeziehung" zur laufzeit ?!
 
Zitat:

Zitat von DeddyH
Du brauchst nur ein paar Klammern mehr als in dem Beispiel von Nikolas ;)

Nicht zwangsweise^^ Es reicht auch wenn man zwei existierende Klammern verschiebt :wink: :mrgreen:

DeddyH 29. Mär 2008 18:24

Re: "kenntbeziehung" zur laufzeit ?!
 
Hat sich eh erledigt, da editiert :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:53 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